jquery检查表单中的值

时间:2013-05-03 23:34:11

标签: javascript jquery

我有两个输入,我在检查以确保在表单提交之前它们不是空的。

我的问题是它只验证#from_date。问题是.val只会检查列表中的最后一个ID吗?

    $('#submitDates').click(function () {
      // Get the fields you want to validate
      var name = $("#to_date, #from_date");

      // Check if field is empty or not
      if (name.val()=='') {
        alert ('Please Select Dates')
        return false;
      } ;

     }); 
    }); 

2 个答案:

答案 0 :(得分:2)

您在.click而不是.submit上挂钩的具体原因是什么?

您可以使用.each

遍历所选元素并检查违规元素
var found = false;
$("#to_date, #from_date").each(function(i,name){
      // Check if field is empty or not
      if (!found && $(name).val()=='') {
        alert ('Please Select Dates')
        found = true;
      } ;
});
return !found;

答案 1 :(得分:0)

在您的示例中,var name = $("#to_date, #from_date");为您提供了两个输入的集合,并且通过执行if (name.val()=='') jQuery仅检查集合中的第一个元素,因此它不起作用。你可以试试这个

$('#submitDates').click(function () {
    var name = $("#to_date, #from_date");
    if ( name[0].value == '' || name[1].value == '' ) {
        alert ('Please Select Dates');
        return false;
    }
});

在上面的示例中,name[0].value引用第一个元素,name[1].value引用第二个元素。如果您想使用jQuery的val()方法,那么您可以像$(name[0]).val()$(name[1]).val()一样使用它。

此外,您应该考虑使用表单的submit事件而不是按钮的点击事件。