0

我有一个页面,当单击链接时,该页面有一个向下滑动的联系表单(即,它是页面上的一个 div,显示为 .slideDown('slow')

我有 jQuery 验证插件在联系表单上工作,只是我注意到在测试时我有 event.preventDefault(); 注释掉了。在最终版本中,我希望取消注释,因为我不希望页面在单击提交时重定向甚至发布。

我有发送 Ajax 帖子以发送电子邮件的提交按钮。我怎样才能保留这个功能并仍然使用 jQuery 的验证插件?

4

2 回答 2

1

而不是在表单上设置一个操作,而是表单提交按钮$.bind()的处理程序并用于发出发布请求。不过要注意几句。首先,您可能应该在表单上设置操作,并默认为禁用 Javascript 的人重定向,然后使用 jQuery 从表单中删除操作,并在页面加载时将处理程序移至提交按钮。其次,在我的代码中,当我说使用警报或其他可访问的通知时,我的意思是使用该方法,或者如果您使用 dom 元素来包含通知,请确保使用WAI-ARIA活动区域和角色属性来制作通知辅助设备可访问。click$.post()$.bind()clickalert()

 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,则应该也可以。

于 2009-11-08T15:58:56.793 回答
1

试试这个逻辑:

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
    // ...
});
于 2018-10-01T12:03:36.800 回答