0

我的 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>
    

我想使用 jquery 在 3 个变量之间进行验证输入,如果 diff(start_date 和 end_date)> 3 个月,summary 只能用于值 >= 1 小时(值 3 和 4)。id=Form_1 中的所有这些变量。

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

4

3 回答 3

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();

    });

});

在 JavaScript 中检测“无效日期”日期实例

在javascript中获取2个日期之间的差异?

于 2013-08-06T12:31:40.963 回答
0

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

于 2013-08-06T13:09:13.953 回答
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到您的频率选择框中。不要忘记additional-methods.js在您的 html 中包含文件。这为验证添加了一个新的自定义规则。随意修补。

于 2013-08-06T14:02:54.370 回答