我有一个我想要验证的表单(使用jquery验证插件)。问题是我需要在提交验证之前对表单值进行一些预处理。
例如,一个验证案例是用户在表单中定义的开始时间不能在此之前。我有2个组件,我需要从中获取值,以获得开始时间。
以下是我目前捕获的内容:
var mtgStart = new Date( startDate.getFullYear() + '-' + ( startDate.getMonth() + 1 ) + '-' + startDate.getDate() + ' ' + sTime );
我已经读过,我可以将这些参数(startTime)传递给验证,如下所示:
var defaults = jQuery.extend( validationPluginDefaults, {
ignore:'',
rules: {
meetingName:{
mtgNameRequired:true
},
e2: {
startTimeInPast:false
startTime:mtgStart
}
}
});
jQuery( "form[ id='mtg_form' ]" ).validate( defaults );
问题是,我在哪里创建“mtgStart”变量?
我的验证方法如下:
jQuery.validator.addMethod("lowerInt", function(value, element, params) {
var now = new Date();
var mtgStart = params[0]:
return now < mtgStart;
}
更新:
我现在点击提交按钮触发验证;没问题。现在的问题是如何将参数传递给jquery验证插件?我尝试过使用javascript数组(正如我所读),但我无法访问它。这是我的代码:
jQuery.validator.addMethod( "createMtgInPast", function( val, el, params ){
var now = new Date();
var mtgStart = params[0];
var nowTime = now.getTime();
var setTime = mtgStart.getTime();
return nowTime < setTime;
},“过去无法创建会议。” );
这是我提交按钮的点击处理程序:
$( '#submit_btn' ).click( function( data )
{
// Concatenate the start/end dates and their times.
var newStart = new Date( startDate.getFullYear() + '-' + ( startDate.getMonth() + 1 ) + '-' + startDate.getDate() + ' ' + sTime );
var newEnd = new Date( endDate.getFullYear() + '-' + ( endDate.getMonth() + 1 ) + '-' + endDate.getDate() + ' ' + eTime );
var defaults = jQuery.extend( validationPluginDefaults, {
rules: {
meetingName:{
mtgNameRequired:true
},
e2: {
createMtgInPast: true,
data:['TEST']
}
}
});
$( "#mtg_form" ).validate( defaults );
答案 0 :(得分:0)
知道了,这是我的更新代码:
var defaults = jQuery.extend( validationPluginDefaults, {
rules: {
meetingName:{
mtgNameRequired:true
},
e2: {
createMtgInPast: [newStart]
}
}
});
我正在创建一个新方法并将args传递到那里;错误。将args直接传递给验证方法。