Javascript 除非填写了所有文本输入字段,否则禁用表单按钮
我有一个表单有多个文本输入,我不想给每个表单添加id,因为它们是从服务器端代码生成的-字段的数量可能会有所不同,等等。我只想能够禁用submit按钮,直到每个文本输入中都输入了文本 我已经完成了这一步,但只在文本输入到一个文本输入字段之前禁用按钮-我希望它保持禁用状态,直到文本输入到所有文本输入Javascript 除非填写了所有文本输入字段,否则禁用表单按钮,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个表单有多个文本输入,我不想给每个表单添加id,因为它们是从服务器端代码生成的-字段的数量可能会有所不同,等等。我只想能够禁用submit按钮,直到每个文本输入中都输入了文本 我已经完成了这一步,但只在文本输入到一个文本输入字段之前禁用按钮-我希望它保持禁用状态,直到文本输入到所有文本输入 <script> $(function () { $('#button').attr('disabled', true);
<script>
$(function () {
$('#button').attr('disabled', true);
$('input:text').keyup(function () {
$('#button').prop('disabled', this.value == "" ? true : false);
})
});
</script>
$(函数(){
$(“#按钮”).attr('disabled',true);
$('input:text').keyup(函数(){
$(“#按钮”).prop('disabled',this.value==“”?true:false);
})
});
我还尝试了
$('input:text').each().keyup(函数(){
-但没有使按钮可点击?keyup的回调函数现在只检查特定输入字段的值(此.value
)。相反,这需要遍历所有需要填充的输入字段,并且只有当所有字段都有文本时,您才更改.prop
值
$('input:text').keyup(function () {
$('#button').prop('disabled', allFieldsAreFilled());
});
function allFieldsAreFilled() {
var allFilled = true;
// check all input text fields
$("#yourForm input:text"]).each(function () {
// if one of them is emptyish allFilled is no longer true
if ($(this).val() == "") {
allFilled = false;
}
});
return allFilled;
}
试试这个:
$(函数(){
var bool=true,flag=false;
$(“#按钮”).prop('disabled',bool);//使用prop禁用按钮
$(document).keyup(function(){//侦听文档上的keyup,或者如果有,可以更改为form,或者可以尝试包含文本输入的最近的div
$('input:text')。每个(function(){//循环遍历每个文本输入
bool=$.trim(this.value)==“”?true:false;//使用布尔值更新变量bool
如果(bool)
返回标志;
});
$('#button').prop('disabled',bool);//并在此处应用布尔值以启用
});
});
可能重复的@User9876867的可能重复很高兴为您提供帮助。在最后一个文本框中输入文本并检查发生了什么?它启用了按钮。
$('#button').attr('disabled', true);
$('input:text').keyup(function () {
var disable = false;
$('input:text').each(function(){
if($(this).val()==""){
disable = true;
}
});
$('#button').prop('disabled', disable);
});