检查所有字段的空值

时间:2011-10-04 15:08:04

标签: javascript jquery

我想如果所有输入的值都转到网址#<form action="#"....),否则不要去。但在此代码中,它只适用于第一个字段,我希望它适用于所有字段。(我无法使用ajax callpreventDefaultwindow.location(因为一个来自字段输入:文件)。如何修复它?

请参阅演示:http://jsfiddle.net/jGu4e/

<form action="abc.html" method="POST" class="submit">
    <input type="text" name="name"><br>
    <input type="text" name="name"><br>
    <input type="text" name="name"><br>
    <button id="cli">Submit</button>
</form>



$('.submit').submit(function() {
    var input = $(this).closest('form').find('input[type="text"]');
  if (!$(input).val()){
    var cssObj={'border-radius':'5px',border:"none","box-shadow":"0 0 1px 1px red",outline:"none",background:"#ffc4c4"};
    $('input[type="text"]').css(cssObj);
    return false;
  };
});

1 个答案:

答案 0 :(得分:1)

你的问题真是双重的。首先,您的选择器可以/将返回多个字段。其次,当.submit调用中的任何一个没有值时,您需要从$('.submit').submit(function() { var input = $(this).closest('form').find('input[type="text"]'); var result = true; input.each(function(){ if (!$(this).val()){ var cssObj={'border-radius':'5px',border:"none","box-shadow":"0 0 1px 1px red",outline:"none",background:"#ffc4c4"}; $(this).css(cssObj); result = false; }; }); return result; }); 调用返回false。

这个jQuery应该可以解决这个问题:

{{1}}

正如您在此处更新的jsfiddle所示:http://jsfiddle.net/T9YBu/1/

编辑:此代码中仍有缺陷。例如,如果用户没有输入值,则它变为红色。如果用户随后填写了一个值并点击了提交,则会保持红色。很容易修复,但实际上这就是使用预先测试的验证插件的原因。