jQuery-Validation-开始日期和结束日期之间的引擎验证

时间:2013-03-08 05:50:01

标签: jquery jquery-validation-engine

我使用jQuery Validation Engine进行表单验证,这里是demo的链接:

https://github.com/posabsolute/jQuery-Validation-Engine

我有两个文本框,一个用于开始日期,第二个用于结束日期。我想要验证 start-date不得大于end-dateend-date不得低于start-date

如果有任何验证,请告诉我。

4 个答案:

答案 0 :(得分:3)

将值转换为Date对象。然后你可以用它来比较,例如。转换为Unix时间戳或其他东西......

有关Datehttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

的更多信息,请参阅此处

编辑:我将提供更多有关我的意思的信息....在jQuery Validation Engine页面的验证工具部分,查找描述 funcCall [methodName] 的部分。

  

funcCall [methodName] - 使用第三方函数调用验证字段。如果发生验证错误,该函数必须返回一条错误消息,该消息将自动显示在错误提示中。

因此,您可以将函数处理程序附加到该字段,该函数将获取日期然后进行比较。

<input value="" class="validate[required,funcCall[checkDates]]" type="text" id="startdate" name="startdate" />
<input value="" class="validate[required,funcCall[checkDates]]" type="text" id="enddate" name="enddate" />

页面上某处有JavaScrip函数:

var checkDates = function(field, rules, i, options) {
    // Do your date comparisons here between startdate and enddate values
};

编辑#2

还有:

  

过去[现在,日期或其他元素的名称] - 检查元素的值(隐式日期)是否早于给定日期。当“NOW”用作参数时,日期将在浏览器中计算。当使用“#field name”时('#'是可选的),它会将元素的值与同一表单中的另一个元素的值进行比较。请注意,这可能与服务器日期不同。日期使用ISO格式YYYY-MM-DD

  

future [现在,日期或其他元素的名称] - 检查元素的值(隐式日期)是否大于给定日期。当“NOW”用作参数时,日期将在浏览器中计算。当使用“#field name”时('#'是可选的),它会将元素的值与同一表单中的另一个元素的值进行比较。请注意,这可能与服务器日期不同。日期使用ISO格式YYYY-MM-DD

如果这符合你的想象,那么就是标记:

<input value="" class="validate[required,past[#enddate]]" type="text" id="startdate" name="startdate" />
<input value="" class="validate[required,future[#startdate]]" type="text" id="enddate" name="enddate" />

答案 1 :(得分:1)

试试这个:

<input  class="validate[dateRange[group]]" type="text" id="date1">
<input  class="validate[dateRange[group]]" type="text" id="date2">

答案 2 :(得分:0)

在Jquery UI中使用日期范围。请参阅此http://jqueryui.com/datepicker/#date-range

答案 3 :(得分:0)

即使为时已晚,我也有一个简单的答案,可能会对其他人有所帮助。你可以在这里获得关于jQuery Validation Engine的注释,这对你的问题来说是更好的解决方案,

https://github.com/posabsolute/jQuery-Validation-Engine

您可以在HTML源代码中使用futurenow验证程序来启用验证。

例如,

如果您有id属性为start_dateend_date的twio文本框,则可以按如下方式使用验证器:

<input value="" class="validate[required,custom[date]]" type="text" id="start_date" name="start_date" />

<input value="" class="validate[required,custom[date],future["#start_date"],now["#start_date"]]" type="text"  id="end_date" name="end_date"  />

然后在基于语言环境的验证引擎文件中,请在future验证程序上放置所需的消息,以便在验证时显示验证消息。

希望这会对你有所帮助。