2013-07-19 302 views
0

我需要比较和验证我通过以下方式四个方面:比较和验证输入字段

如果有人在现场写了一个客户端数量,有没有必要填写地址字段。同样,如果有人填写地址字段,他们将不必填写客户号码。

这里是我的代码:

$('#Form1').submit(function(event) { 
    if ($(this).find('#address, #city, #postalcode, #customernum [input]').val() == '') { 
     alert('Please enter Your client number or your address!') 
    } 
    event.preventDefault(); 
} 
+2

您需要使用'.each()'。 '.val()'只返回匹配选择器的第一个元素的值,而不是全部。 – Barmar

+0

我只需要检查特定的字段,iv有20个字段。 – jheul

+0

我想要做或者如果地址字段为空输入客户字段,反之亦然。 – jheul

回答

1
$('#Form1').submit(function(event) { 
    var formok = false; 
    if ($("#customernum").val() != "") { 
      formok = true; 
    } else { 
     formok = true; 
     $("#address, #city, #postalcode").each(function() { 
      if ($(this).val() == '') { 
       formok = false; 
       return false; // break out of loop 
      } 
     }); 
    } 
    if (!formok) { 
     alert('Please enter Your client number or your address!') 
     event.preventDefault(); 
    } 
} 
+0

这确实奏效。非常感谢 – jheul

0

你的元素有一个ID。为什么使用:

$(this).find(' #address, ... 

?这不是必需的。

尝试做

$('#address, #city.... 

我从来没有使用多个选择做你想要做什么,所以我不知道它会工作。我希望虽然

+0

良好的信息,但不是问题的答案。 – Barmar

+0

好吧,也许这只是问题所在。 Jquery不喜欢这样,它不起作用。不确定 –

+0

您是否阅读过我的关于'val()'如何与匹配多个元素的选择器一起使用的评论? – Barmar