我正在尝试单独验证表单的不同部分。不幸的是,该表单是由CMS生成的,因此我的操作受到限制。
我尝试创建一个validate
对象数组,使用当前表单部分作为索引。例如:
//initialize validation
validators = [
$('#donation_amount').validate({ rules:{ amount: { required: true } } }),
$('#personal_information').validate({ rules:{ Street: { required: true } } })
];
并通过以下方式切换各个部分:
$('#btn-next').click(function() {
//if validation is true, show next page
if (validators[curOrder].valid()) {
var old = $('.active');
var oldOrder = old.attr('data-order');
var newOrder = parseInt(oldOrder) + 1;
old.removeClass('active');
$("[data-order='" + newOrder + "']").addClass('active');
curOrder = newOrder;
}else{
console.log("invalid");
}
});
然而,验证总是返回true
。
以下是相关页面:https://salsa3.salsalabs.com/o/50388/p/salsa/donation/common/public/?donate_page_KEY=8461
.validate()
放在click
处理程序中。它的作用是初始化表单,应该放在document.ready
中。当您需要在事件中测试表单时,请使用.valid()
,它将返回 true/false。否则,.validate()
中已经内置了可以使用的事件。请参见:这个,这个 和 这个。 - Sparkydocument.ready
里面吗?如果每个部分现在都包含在自己的“表单”中,那么为什么还要混乱地使用“.active
”类和诸如此类的东西呢? - Sparky