问:
我有这个 HTML:
我该怎么做这样的事情:
当文本字段为空时,应禁用提交 (disabled=“disabled”)。
在文本字段中键入内容以删除禁用属性时。
如果文本字段再次变为空(文本被删除),则应再次禁用提交按钮。
我试过这样的事情:
$(document).ready(function(){
$('input[type="submit"]').attr('disabled','disabled');
$('input[type="text"]').change(function(){
if($(this).val != ''){
$('input[type="submit"]').removeAttr('disabled');
}
});
});
……但它不起作用。有任何想法吗?
huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。
答1:
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
问题是仅当焦点从输入移开时才会触发更改事件(例如,有人单击输入或标签退出)。尝试使用 keyup 代替:
$(document).ready(function() {
$(':input[type="submit"]').prop('disabled', true);
$('input[type="text"]').keyup(function() {
if($(this).val() != '') {
$(':input[type="submit"]').prop('disabled', false);
}
});
});
prop('disabled', true) 方法应该在 attr('disabled','disabled') 方法上使用 see the docs on prop()
答2:
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
$(function() {
$(":text").keypress(check_submit).each(function() {
check_submit();
});
});
function check_submit() {
if ($(this).val().length == 0) {
$(":submit").attr("disabled", true);
} else {
$(":submit").removeAttr("disabled");
}
}
答3:
保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com
这个问题已有 2 年历史,但它仍然是一个很好的问题,它是 Google 的第一个结果…但所有现有答案都建议设置和删除 HTML 属性 (removeAttr(“disabled”)) “disabled”,这不是正确的方法。关于属性与属性有很多混淆。
HTML
标记 is called a boolean attribute by the W3C 中 中的“已禁用”。
HTML 与 DOM
引用:
一个属性在 DOM 中;一个属性位于解析为 DOM 的 HTML 中。
https://stackoverflow.com/a/7572855/664132
jQuery
有关的:
尽管如此,关于checked 属性最重要的概念是它不对应于checked 属性。该属性实际上对应于 defaultChecked 属性,应该只用于设置复选框的初始值。选中的属性值不会随着复选框的状态而改变,而选中的属性会。因此,确定是否选中复选框的跨浏览器兼容方法是使用属性…
相关的:
属性通常会影响 DOM 元素的动态状态,而不会更改序列化的 HTML 属性。示例包括输入元素的 value 属性、输入和按钮的 disabled 属性或复选框的 checked 属性。应该使用 .prop() 方法来设置禁用和检查,而不是 .attr() 方法。
$( "input" ).prop( "disabled", false );
概括
要 […] 更改 DOM 属性,例如 […] 表单元素的禁用状态,请使用 .prop() 方法。
(http://api.jquery.com/attr/)
至于问题的禁用更改部分:有一个名为“输入”的事件,但 browser support is limited 它不是 jQuery 事件,所以 jQuery 不会让它工作。更改事件可靠地工作,但在元素失去焦点时触发。所以可以将两者结合起来(有些人也听keyup和paste)。
这是一段未经测试的代码来说明我的意思:
$(document).ready(function() {
var $submit = $('input[type="submit"]');
$submit.prop('disabled', true);
$('input[type="text"]').on('input change', function() { //'input change keyup paste'
$submit.prop('disabled', !$(this).val().length);
});
});
答4:
huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感
要删除禁用的属性使用,
$("#elementID").removeAttr('disabled');
并添加禁用属性使用,
$("#elementID").prop("disabled", true);
享受 :)
答5:
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
或者对于我们不喜欢在每件小事上都使用 jQ 的人:
document.getElementById("submitButtonId").disabled = true;
这个获得 25 票赞成的答案解释了世界各地许多糟糕的代码:/
答6:
huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。
eric,当用户输入文本然后删除所有文本时,您的代码似乎对我不起作用。如果有人遇到同样的问题,我创建了另一个版本。来吧,伙计们:
$('input[type="submit"]').attr('disabled','disabled');
$('input[type="text"]').keyup(function(){
if($('input[type="text"]').val() == ""){
$('input[type="submit"]').attr('disabled','disabled');
}
else{
$('input[type="submit"]').removeAttr('disabled');
}
})
答7:
huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。
它将像这样工作:
$('input[type="email"]').keyup(function() {
if ($(this).val() != '') {
$(':button[type="submit"]').prop('disabled', false);
} else {
$(':button[type="submit"]').prop('disabled', true);
}
});
确保您的 HTML 中有一个“禁用”属性
答8:
打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!
你也可以使用这样的东西:
$(document).ready(function() {
$('input[type="submit"]').attr('disabled', true);
$('input[type="text"]').on('keyup',function() {
if($(this).val() != '') {
$('input[type="submit"]').attr('disabled' , false);
}else{
$('input[type="submit"]').attr('disabled' , true);
}
});
});
这是Live example
答9:
一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会
对于表单登录:
Javascript:
$(document).ready(function() {
$('#send').prop('disabled', true);
$('#email, #password').keyup(function(){
if ($('#password').val() != '' && $('#email').val() != '')
{
$('#send').prop('disabled', false);
}
else
{
$('#send').prop('disabled', true);
}
});
});
答10:
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
这是文件输入字段的解决方案。
要在未选择文件时禁用文件字段的提交按钮,然后在用户选择要上传的文件后启用:
$(document).ready(function(){
$("#submitButtonId").attr("disabled", "disabled");
$("#fileFieldId").change(function(){
$("#submitButtonId").removeAttr("disabled");
});
});
html:
<%= form_tag your_method_path, :multipart => true do %><%= file_field_tag :file, :accept => "text/csv", :id => "fileFieldId" %><%= submit_tag "Upload", :id => "submitButtonId" %><% end %>
答11:
huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。
我们可以简单地拥有 if & else .if 假设您的输入为空,我们可以拥有
if($(#name).val() != '') {
$('input[type="submit"]').attr('disabled' , false);
}
否则我们可以将 false 更改为 true
原文链接:https://www.huntsbot.com/qa/LPlo/jquery-disable-enable-submit-button?lang=zh_CN&from=csdn
huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。