我搜索了一大堆页面,但找不到我的问题,所以我不得不写一篇文章。
我有一个表单,它有一个提交按钮,当提交时,我希望它不刷新或重定向。我只想让jQuery执行一个函数。
表单如下:
<form id="contactForm">
<fieldset>
<label for="Name">Name</label>
<input id="contactName" type="text" />
</fieldset>
<fieldset>
<label for="Email">Email</label>
<input id="contactEmail" type="text" />
</fieldset>
<fieldset class="noHeight">
<textarea id="contactMessage" cols="20"></textarea>
<input id="contactSend" class="submit" type="submit" onclick="sendContactForm()" />
</fieldset>
</form>
<small id="messageSent">Your message has been sent.</small>
下面是jQuery:
function sendContactForm(){
$("#messageSent").slideDown("slow");
setTimeout('$("#messageSent").slideUp();$("#contactForm").slideUp("slow")', 2000);
}
我试过在表单上使用和不使用action元素,但不知道我做错了什么。更让我恼火的是,我有一个很好的例子:Example Page
如果你想看我的问题实况转播,去stormink.net (我的网站),看看侧边栏上写着“给我发邮件”和"RSS订阅“。这两个都是我想让它生效的表单。
发布于 2009-08-12 01:53:21
只需处理submit事件上的表单提交,并返回false:
$('#contactForm').submit(function () {
sendContactForm();
return false;
});
提交按钮上不再需要onclick事件:
<input class="submit" type="submit" value="Send" />
发布于 2009-08-12 01:57:45
这里:
function submitClick(e)
{
e.preventDefault();
$("#messageSent").slideDown("slow");
setTimeout('$("#messageSent").slideUp();
$("#contactForm").slideUp("slow")', 2000);
}
$(document).ready(function() {
$('#contactSend').click(submitClick);
});
不使用onClick事件,而是使用jQuery将一个'click‘事件处理程序绑定到提交按钮(或其他任何按钮),这将接受submitClick作为回调。我们将事件传递给回调以调用preventDefault,这将阻止单击提交表单。
发布于 2015-06-23 11:46:54
在表单的开始标记中,设置操作属性,如下所示:
<form id="contactForm" action="#">
https://stackoverflow.com/questions/1263852
复制相似问题