Javascript 除非特定字段有值,否则禁用按钮

Javascript 除非特定字段有值,否则禁用按钮,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个ASPX表单,如果六个特定字段中的任何一个为空,我需要禁用submit按钮。我试图通过Javascript或jQuery实现这一点,但到目前为止,我只能找到表单上单个字段为空或表单上所有字段的示例。在我的例子中,我不关心几个字段——只关心六个特定的字段 基本上,我有六个条件和一个动作。我找到了一个例子,但它将六个不同的IF语句串在一起。如果可能的话,我想找一个更精简的方法。例如,我可以对单个字段执行此操作。。。但是,在第二、第三、第四等领域,如何做到这一点呢 $(document).re

我有一个ASPX表单,如果六个特定字段中的任何一个为空,我需要禁用submit按钮。我试图通过Javascript或jQuery实现这一点,但到目前为止,我只能找到表单上单个字段为空或表单上所有字段的示例。在我的例子中,我不关心几个字段——只关心六个特定的字段

基本上,我有六个条件和一个动作。我找到了一个例子,但它将六个不同的IF语句串在一起。如果可能的话,我想找一个更精简的方法。例如,我可以对单个字段执行此操作。。。但是,在第二、第三、第四等领域,如何做到这一点呢

$(document).ready(function(){
  $('#submit_btn').prop('disabled',true); 
  $('#field1').keyup(function(){ 
      $('#submit_btn').prop('disabled'); 
  }) 
});

使用Javascript或jQuery,如果六个输入字段中的任何一个为空,禁用输入按钮的最有效方法是什么?

如果您的需求允许,您可以使用。浏览器将不允许提交表单

<form>
  <label for="choose">Foo</label>
  <input name="bar" required>
  <input type="submit" /> <!-- <--- This will generate an error message if the user clicks it when the field is empty -->
</form>

如果您的需求允许,您可以使用。浏览器将不允许提交表单

<form>
  <label for="choose">Foo</label>
  <input name="bar" required>
  <input type="submit" /> <!-- <--- This will generate an error message if the user clicks it when the field is empty -->
</form>
$(文档).ready(函数(){
$('submit_btn').prop('disabled',true);
$('#field1').keyup(函数(){//on keyup
var value=$(this).val();//检索输入的值
if(value.length==0)//如果值的长度为0(空)
$('submit_btn').prop('disabled',true);//禁用按钮
否则//
$('submit_btn').prop('disabled',false);//启用它
});
});

$(文档).ready(函数(){
$('submit_btn').prop('disabled',true);
$('#field1').keyup(函数(){//on keyup
var value=$(this).val();//检索输入的值
if(value.length==0)//如果值的长度为0(空)
$('submit_btn').prop('disabled',true);//禁用按钮
否则//
$('submit_btn').prop('disabled',false);//启用它
});
});

您的开头是正确的;创建一个包含六个变量的数组,每个变量对应一个字段,并创建一个新函数来验证在每个keyup上调用的所有内容。所以你会

var[] array

$('#field1').keyup(function() {
    array[0] = $('#field1').val();
    validate();
}
${'#field2').keyup(function() {
    array[1] = $('#field2').val();
    validate();
}

...create one each for each field

function validate() {
    for (var i = 0; i < array.length; i++) {
        if(!arrays[i]) {
            $('#submit_btn').prop('disabled');
            return;
        }
    }
    $('#submit_btn').prop('enabled'):
}
var[]数组
$('#field1').keyup(函数(){
数组[0]=$('#field1').val();
验证();
}
${'#field2').keyup(函数(){
数组[1]=$('#field2').val();
验证();
}
…为每个字段创建一个
函数验证(){
对于(var i=0;i
它的作用是侦听字段以进行更改并更新数组。空值是falsy,因此您可以遍历数组并禁用按钮(如果为空或null或其他内容)。在这种情况下,中断for循环;您不关心任何其他内容。如果没有任何内容禁用按钮并中断for循环,则它是有效的d按钮已启用

这种方法很有用,因为它很容易扩展。如果您想检查数组,只需将额外的内容放入数组中,而无需重写验证函数


这假设您不想只使用标准表单验证并手动进行验证。

您已经找到了正确的开始;创建一个包含六个变量的数组,每个字段一个,并创建一个新函数来验证每个键控调用的所有内容。因此

var[] array

$('#field1').keyup(function() {
    array[0] = $('#field1').val();
    validate();
}
${'#field2').keyup(function() {
    array[1] = $('#field2').val();
    validate();
}

...create one each for each field

function validate() {
    for (var i = 0; i < array.length; i++) {
        if(!arrays[i]) {
            $('#submit_btn').prop('disabled');
            return;
        }
    }
    $('#submit_btn').prop('enabled'):
}
var[]数组
$('#field1').keyup(函数(){
数组[0]=$('#field1').val();
验证();
}
${'#field2').keyup(函数(){
数组[1]=$('#field2').val();
验证();
}
…为每个字段创建一个
函数验证(){
对于(var i=0;i
它的作用是侦听字段以进行更改并更新数组。空值是falsy,因此您可以遍历数组并禁用按钮(如果为空或null或其他内容)。在这种情况下,中断for循环;您不关心任何其他内容。如果没有任何内容禁用按钮并中断for循环,则它是有效的d按钮已启用

这种方法很有用,因为它很容易扩展。如果您想检查数组,只需将额外的内容放入数组中,而无需重写验证函数


这假设您不想只使用标准表单验证并手动进行验证。

您可以将相同的类名添加到所有元素中,然后对每个类元素进行验证。与下面的代码一样,我使用
class=“valid”将相同的类名添加到所有需要验证的输入中
,然后使用jquery类选择器和用于控制按钮状态的方法

(函数(){
$('.valid').keyup(函数(){
var isEmpty=false;
$('.valid')。每个(函数(){
if($(this.val()=''){
isEmpty=true;
}
});
如果(我是空的){
$('#button1').attr('disabled','disabled');
}否则{
$(“#按钮1”).removeAttr('disabled');
}
});
})()

1
2
3
4
5
6

您可以向所有元素添加相同的类名,然后对每个类元素进行验证。与下面的代码一样,我使用
class=“valid”向所有需要验证的输入添加了相同的类名
,然后使用jquery类选择器和用于控制按钮状态的方法

(函数(){
$('.valid').keyup(函数(){
var isEmpty=false;
$('.valid')。每个(函数(