检查两个字段以输入字符

Checking two fields for entering characters

我有两个字段和一个按钮。任务:在两个字段中都输入字符之前,该按钮处于非活动状态。如果至少有一个字段为空 - 该按钮处于非活动状态。

字段 ID:«zipcode-from» 和 «zipcode-to»

我有以下代码:

jQuery('input#zipcode-button').attr('disabled','disabled');
jQuery('input#zipcode-from').keyup(function(){
    if (jQuery('input#zipcode-from').val() == "") {
        jQuery('input#zipcode-button').attr('disabled','disabled');
    }
    else
    {
        jQuery(':input#zipcode-button').removeAttr('disabled');
    }
})

它适用于第一个字段。但是如何检查这两个字段呢?试过&&,但我不能使这个函数为真。

您可以只使用 css 语法将 keyup 附加到两个字段,然后检查其中一个字段是否为空(您应该在此处使用 OR)。像这样:

jQuery('input#zipcode-button').attr('disabled','disabled');
jQuery('input#zipcode-from, input#zipcode-to').keyup(function(){
if ((jQuery('input#zipcode-from').val() == "")||(jQuery('input#zipcode-to').val() == "")) {
    jQuery('input#zipcode-button').attr('disabled','disabled');
}
else
{
    jQuery(':input#zipcode-button').removeAttr('disabled');
}
})

这里是一个较短的版本,没有输入字段,也没有使用 jQuery 选择器。您不需要根据空字符串检查该值,但我可以理解您是否出于可读性目的。您可以使用 !$('#zipcode-from').val() 检查该值是否为空。

if 语句现在包含在 conditional statement 中。

Fiddle here.

$('#zipcode-button').attr('disabled', 'disabled');

$('#zipcode-from, #zipcode-to').keyup(function() {
  (!$('#zipcode-from').val() || !$('#zipcode-to').val()) ? $('#zipcode-button').attr('disabled', 'disabled') : $('#zipcode-button').removeAttr('disabled');
})