Jquery 预防性故障不起作用 名义: 阿佩利多:
JSJquery 预防性故障不起作用 名义: 阿佩利多:,jquery,html,forms,Jquery,Html,Forms,JS $(文档).ready(函数(){ $(函数(){ $(“#联系方式”)。提交(功能(e){ e、 预防默认值(); 返回false; 变量形式=$(此); var post_url=form.attr('action'); var post_data=form.serialize(); $('loader',form).html('Please Wait…'); $.ajax({ 键入:“POST”, url:post_url, 数据:post_数据, 成功:功能(msg){ $(形式)
$(文档).ready(函数(){
$(函数(){
$(“#联系方式”)。提交(功能(e){
e、 预防默认值();
返回false;
变量形式=$(此);
var post_url=form.attr('action');
var post_data=form.serialize();
$('loader',form).html('Please Wait…');
$.ajax({
键入:“POST”,
url:post_url,
数据:post_数据,
成功:功能(msg){
$(形式).fadeOut(500,函数(){
html(msg.fadeIn();
});
}
});
});
});
});
我试图只处理提交而不加载页面。但“防止违约”不起作用
请注意,任何建议都是善意的,调用
document.getElementById('contact-form')。submit()
不会触发submit()
事件。由于您使用的是jQuery,您可以通过将“Enviar”链接更改为:
$(document).ready(function () {
$(function () {
$('#contact-form').submit(function (e) {
e.preventDefault();
return false;
var form = $(this);
var post_url = form.attr('action');
var post_data = form.serialize();
$('#loader', form).html('<img src="images/loader.gif" /> Please Wait...');
$.ajax({
type: 'POST',
url: post_url,
data: post_data,
success: function (msg) {
$(form).fadeOut(500, function () {
form.html(msg).fadeIn();
});
}
});
});
});
});
完成后,删除
return false代码>位于e.preventDefault()
行之后。它会导致函数退出,从而阻止它之后的任何代码运行。既然您已经在使用jQuery,为什么不以同样的方式调用submit事件呢?删除内联onclick
内容,给锚定一些ID,然后执行如下操作:
<a class="button" href="#" onClick="$('#contact-form').submit()">Enviar</a>
锚只需要这些ID:
$(function () {
$('#submitLink').click(function () {
$('#contact-form').submit();
});
$('#resetLink').click(function () {
$('#contact-form').reset();
});
});
需要注意的其他几点:
- 您正在处理程序中立即调用
return
,因此其他代码都不会运行。您可能希望在函数末尾返回
- 使用这样的锚是非常不标准的,可能会导致进一步的问题。一个很好的例子是“
href=“#”
”,这是HTML中的一种反模式。我建议使用此功能的按钮。锚定用于将两个文档链接在一起(或文档中的两个位置),而不是调用表单功能
浏览器控制台中的任何错误是否确定阻止ajax执行的不是返回false?为什么要使用锚来提交表单,而不是提交按钮您有嵌套的dom就绪处理程序。。。您可以删除其中一个调用文档。getElementById('contact-form')。submit()
不会触发提交事件,因此您的提交处理程序不会被调用。您缺少id选择器。
$(function () {
$('#submitLink').click(function () {
$('#contact-form').submit();
});
$('#resetLink').click(function () {
$('#contact-form').reset();
});
});
<a class="button" id="submitLink" href="#">Enviar</a>
<a class="button" id="resetLink" href="#">Limpiar</a>