如何检查输入字段是否为空
我正在创建一个带输入的表单,如果输入类型为空,则按钮提交被禁用,但是,如果输入字段长度> 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
你有一个错字, length
不lenght
。
由于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/