如何检查输入字段是否为空

我正在创建一个带输入的表单,如果输入类型为空,则按钮提交被禁用,但是,如果输入字段长度> 0,则启用提交按钮



function check() { if($("#spa").lenght>0 && $("#eng").lenght>0) { $("#submit").prop('disabled', false); } else { $("#submit").prop('disabled', true); } }

它工作,但如果那时我删除例如仍然启用按钮提交的输入spa的内容

使用trim和val。

 var value=$.trim($("#spa").val()); if(value.length>0) { //do some stuffs. } 

val() :返回输入的值。

trim() :将修剪空白区域。

使用.val() ,它将返回的值

 $("#spa").val().length > 0 

你有一个错字, lengthlenght

由于javascript是动态类型的,而不是像上面那样使用.length属性,你可以简单地将输入值视为布尔值:

 var input = $.trim($("#spa").val()); if (input) { // Do Stuff } 

您还可以将逻辑提取到函数中,然后通过分配类并使用each()方法,代码更加动态,例如,在将来您想要添加另一个输入时,您不需要更改任何代码。

因此,不是将函数调用硬编码到输入标记中,而是可以为输入提供一个类,在此示例中为test ,并使用:

 $(".test").each(function () { $(this).keyup(function () { $("#submit").prop("disabled", CheckInputs()); }); }); 

然后调用以下内容并返回一个布尔值以分配给disabled属性:

 function CheckInputs() { var valid = false; $(".test").each(function () { if (valid) { return valid; } valid = !$.trim($(this).val()); }); return valid; } 

你可以看到我在这个JSFiddle中提到的所有内容的工作示例。

你为什么不用:

  

然后删除输入上的onkeyup函数。

试试这个

 $.trim($("#spa").val()).length > 0 

它不会将任何空白区域视为正确值

如果您在应用程序中使用jquery-validate.js ,请使用下面的表达式。

 if($("#spa").is(":blank")) { //code } 

如果您决定展开表单,此代码段将处理两个以上的复选框。

 $("input[type=text]").keyup(function(){ var count = 0, attr = "disabled", $sub = $("#submit"), $inputs = $("input[type=text]"); $inputs.each(function(){ count += ($.trim($(this).val())) ? 1:0; }); (count >= $inputs.length ) ? $sub.removeAttr(attr):$sub.attr(attr,attr); }); 

工作示例: http //jsfiddle.net/sr4gq/