1

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

我的问题是它只验证#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;
      } ;

     }); 
    }); 
4

2 回答 2

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;
于 2013-05-03T23:35:58.473 回答
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()and一样使用它$(name[1]).val()

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

于 2013-05-03T23:51:54.020 回答