我有一个页面,当单击链接时,该页面有一个向下滑动的联系表单(即,它是页面上的一个 div,显示为 .slideDown('slow')
我有 jQuery 验证插件在联系表单上工作,只是我注意到在测试时我有 event.preventDefault(); 注释掉了。在最终版本中,我希望取消注释,因为我不希望页面在单击提交时重定向甚至发布。
我有发送 Ajax 帖子以发送电子邮件的提交按钮。我怎样才能保留这个功能并仍然使用 jQuery 的验证插件?
我有一个页面,当单击链接时,该页面有一个向下滑动的联系表单(即,它是页面上的一个 div,显示为 .slideDown('slow')
我有 jQuery 验证插件在联系表单上工作,只是我注意到在测试时我有 event.preventDefault(); 注释掉了。在最终版本中,我希望取消注释,因为我不希望页面在单击提交时重定向甚至发布。
我有发送 Ajax 帖子以发送电子邮件的提交按钮。我怎样才能保留这个功能并仍然使用 jQuery 的验证插件?
而不是在表单上设置一个操作,而是表单提交按钮$.bind()
的处理程序并用于发出发布请求。不过要注意几句。首先,您可能应该在表单上设置操作,并默认为禁用 Javascript 的人重定向,然后使用 jQuery 从表单中删除操作,并在页面加载时将处理程序移至提交按钮。其次,在我的代码中,当我说使用警报或其他可访问的通知时,我的意思是使用该方法,或者如果您使用 dom 元素来包含通知,请确保使用WAI-ARIA活动区域和角色属性来制作通知辅助设备可访问。click
$.post()
$.bind()
click
alert()
function onFormSubmit(event)
{
$.post('http://url.to.your.service',
$('#theFormId').serialize(),
function(data, textStatus)
{
switch(textStatus)
{
// Alert or some other
// accessible notification of success/failure
}
}
);
}
编辑:有时我真的需要更仔细地阅读问题。因此,您已经在使用提交按钮来发送 AJAX 请求。也许我的可用性评论会对您有用,所以我将保留这部分答案。如果您将操作设置为javascript:null(0)
,#
或将目标设置为隐藏的 iframe,则应该也可以。
试试这个逻辑:
var form = $("#your-form-id");
form.validate(); //jquery validation
form.on("submit", function (e) {
if(!form.valid()) {
return false; //Check first if the form is valid, otherwise return false which will redirect to validation
}
e.preventDefault();//If the form is valid, prevent default submission
// Now proceed to submit your form via ajax below
// ...
});