我使用 jQuery Validation Engine 进行表单验证,这里是演示链接:
https://github.com/posabsolute/jQuery-Validation-Engine
我有两个文本框,一个是开始日期,第二个是结束日期。我想验证那
start-date
一定不能大于end-date
,也end-date
不能小于start-date
。
如果有任何验证,请告诉我。
我使用 jQuery Validation Engine 进行表单验证,这里是演示链接:
https://github.com/posabsolute/jQuery-Validation-Engine
我有两个文本框,一个是开始日期,第二个是结束日期。我想验证那
start-date
一定不能大于end-date
,也end-date
不能小于start-date
。
如果有任何验证,请告诉我。
将值转换为Date
对象。然后你可以用它来比较,例如。转换为Unix时间戳或其他东西......
有关更多信息,请参见此处Date
:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date
编辑:我将包含更多关于我的意思的信息......在jQuery Validation Engine页面的Validators部分下,查找它描述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
和
未来[现在,日期或另一个元素的名称] - 检查元素的值(隐含的日期)是否大于给定日期。当使用“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" />
试试这个:
<input class="validate[dateRange[group]]" type="text" id="date1">
<input class="validate[dateRange[group]]" type="text" id="date2">
在 Jquery UI 中使用日期范围。请参阅此http://jqueryui.com/datepicker/#date-range
即使为时已晚,我有一个简单的答案,可能会对其他人有所帮助。您可以在此处获取有关 jQuery Validation Engine 的注释,这将是您问题的更好解决方案,
https://github.com/posabsolute/jQuery-Validation-Engine
您可以在 HTML 源代码中使用future
,now
验证器来启用验证。
例如,
如果您有两个具有id
属性 asstart_date
和的文本框end_date
,则可以按如下方式使用验证器:
<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
验证器上,以在验证时显示验证信息。
希望这对您有所帮助。