[英]Using a button outside a form to submit form and trigger jQuery validation
我正在使用jQuery验证插件,表单使用ajax来提交表单。 我有一个浮动按钮栏,根据页面的用途生成页面按钮。 这些按钮位于表单标记之外。 我的表单的ID是帐户设置。 在我的文件中。我有这个:
$("#account-settings").validate({
rules: {
email: {email: true}
},
messages: {
email: {email: "Enter a valid email address."}
},
})
有一个名为savesettings的按钮可以保存表单的设置。 这是点击事件:
$('#savesettings').click(function() {
if($('#account-settings').valid()){
alert("Valid form");
}
else{
alert("Not valid");
}
}
当我点击按钮时没有任何反应...所以,基本上,我显然没有正确使用插件,有人启发我吗? 继续阅读文档,但我没有看到任何其他内容......
您需要在用户单击按钮时序列化表单。
$('#savesettings').click(function() {
var $as = $('#account-settings');
if($as.valid()){
$.post(
/* your server page */
, $as.serialize()
, /* your callback function */
);
}
else{
alert("Not valid");
}
});
我应该指出以这种方式提交表单的明显可访问性陷阱,没有JavaScript的用户将无法使用它。
如果您想使用该表单之外的任何按钮提交表单,您应该使用trigger()
函数,如下所示:
$('body').on('click', '#my-button', function(){
$('#account-settings').trigger('submit');
});
然后,您的验证插件应该正常运行。
你的JS函数可以使用结束语。 尝试类似的东西:
$('#savesettings').click(function() {
if($('#account-settings').valid()){
alert("Valid form");
} else {
alert("Not valid");
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.