jquery使用多个变量进行验证

时间:2013-08-06 10:26:29

标签: jquery validation

我的html中有3个变量:

  1. 开始日期(文字输入)

    <input size="16" name="start_date" type="text"  class="m-wrap">
    
  2. 结束日期(文字输入)

    <input size="16" name="end_date" type="text"  class="m-wrap">
    
  3. 频率(下拉列表)

    <select class="span3 chosen" name="summarize" tabindex="1">
       <option value="1">15 minutes</option>
       <option value="2">30 minutes</option>
       <option value="3">1 hour</option>
       <option value="4">3 hours</option>
    </select>
    
  4. 我想使用jquery在3变量之间进行验证输入,如果是diff(start_date和end_date)&gt; 3个月,总结只能使用值> = 1小时(值3和4)。 id = Form_1中的所有变量。

    我如何进行此验证?任何示例代码将不胜感激。

3 个答案:

答案 0 :(得分:0)

$(function () {

    $('input[name="start_date"], input[name="end_date"]')
    .change(function () {

        // check that both dates are populated and valid, if not than return

        // if the difference between the start date and the end date is more than
        // three months, than hide options less than an hour, otherwise return
        $('select[name="summarize"] > option:lt(2)').hide();

    });

});

Detecting an "invalid date" Date instance in JavaScript

Get difference between 2 dates in javascript?

答案 1 :(得分:0)

试试jQuery UI Validation。在这里,您可以轻松定义自定义规则验证,然后分配给输入字段。如果您遇到任何问题,请告诉我。

答案 2 :(得分:0)

我假设您正在使用jQuery验证插件。如果没有,仍然可以使用逻辑。我承认这很粗糙。将以下方法添加到additional-methods.js。此文件随jquery.validate.js一起提供。

jQuery.validator.addMethod("frequency", function(value, element) {
  var startdate = Date.parse($('input[name="start_date"]').val();
  var enddate = Date.parse($('input[name="end_date"]').val();
  difference = enddate-startdate;
  if(difference>7776000){
    if(value>2)
      return true;
    else
      return false;
  }
  else
    return true;
}, "Enter a higher frequency");

现在将班级frequency添加到您的频率选择框中。 不要忘记在您的HTML中加入additional-methods.js文件。这会为验证添加新的自定义规则。随意修补。