gpt4 book ai didi

javascript - 将变量传递给绑定(bind)到表单提交的函数会破坏 PreventDefault 并返回 false

转载 作者:行者123 更新时间:2023-12-03 11:44:20 26 4
gpt4 key购买 nike

我正在尝试执行一个绑定(bind)到表单的函数,该函数会阻止浏览器提交表单并检查该表单是否缺少字段,如果没有,它将继续通过 Ajax 提交表单

问题是,该页面包含许多非常相似的表单,这些表单具有相同的字段,只是每个表单元素的 ID 后面有唯一的数字。我想将该数字传递给绑定(bind)到相关表单的函数,但是当我初始化“event”变量以外的任何变量时,表单会提交并忽略 event.preventDefault();和/或返回 false;

这是一个简单的测试:

http://jsfiddle.net/q3mae60g/

代码如下:

JS:

$('#contact-form1').submit( submitForm("1") );

function submitForm(formId,event) {

var contactForm = $(this);
var forename = '#contact-forename' + formId;
var surname = '#contact-surname' + formId;
var email = '#contact-email' + formId;
var tel = '#contact-tel' + formId;

if ( !$(forename).val() || !$(surname).val() || !$(email).val() || !$(tel).val() ) {

$('.form-status').removeClass("current-status");
$('.contact-incomplete').addClass("current-status");

} else {

$('.form-status').removeClass("current-status");
$('.contact-sending').addClass("current-status");

$.ajax( {
url: contactForm.attr( 'action' ) + "?ajax=true",
type: contactForm.attr( 'method' ),
data: contactForm.serialize(),
success: submitFinished
} );
}
return false;
}

问题似乎在于尝试将变量传递给函数。

最佳答案

.submit() 需要一个函数引用。您正在做的是调用一个返回值 false 的函数。这就像做:

$('#contact-form1').submit( false );

什么也不做。

您可以做的是传递一个调用您的函数的匿名函数。类似这样的事情:

$('#contact-form1').submit( function(e){
e.preventDefault();
submitForm.call(this, "1", e);
});

关于javascript - 将变量传递给绑定(bind)到表单提交的函数会破坏 PreventDefault 并返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com