Javascript JS var声明-由于变量具有相同值的函数问题,验证错误
我正在对表单文本输入进行验证。 如果用户将输入留空,则函数将开始运行。如果字段大于1,那么它不会进入函数 问题是: 第一次,用户将输入留空,函数运行,我得到了警报-没关系。 第二次,用户在年龄输入中添加了10,他再次得到警告,但他不应该这样做 注: 年龄输入值,从另一个函数calc返回一个名为:result的变量 代码如下:Javascript JS var声明-由于变量具有相同值的函数问题,验证错误,javascript,function,preventdefault,Javascript,Function,Preventdefault,我正在对表单文本输入进行验证。 如果用户将输入留空,则函数将开始运行。如果字段大于1,那么它不会进入函数 问题是: 第一次,用户将输入留空,函数运行,我得到了警报-没关系。 第二次,用户在年龄输入中添加了10,他再次得到警告,但他不应该这样做 注: 年龄输入值,从另一个函数calc返回一个名为:result的变量 代码如下: $(document).ready(function(){ $('#btn_send').click(function(){ //var result gets t
$(document).ready(function(){
$('#btn_send').click(function(){
//var result gets the value ffrom another function of input "Age" value. -> return thisform.Age.value
var result = calc(document.getElementById("campaignform"));
if (result<1)
{
$("#campaignform").submit(function(event) {
event.preventDefault(); alert ("prevent default");
});
}
else{
return true;
};
});
})
因此,如果您第二次尝试单击Submit,则进入$'btn_send'。单击函数和事件尽管您在年龄返回中添加了例如67作为结果输入,但进入了if数据项,即:if result
将事件处理程序添加到表单中,以便以后每次提交时都会调用该函数。您再也不会删除该事件处理程序,因此即使在更正该字段后,每次提交时仍会调用默认的阻止函数
可以使用该方法删除jQuery事件处理程序,但通常最好避免大量添加和删除处理程序。更容易,也更可靠,因为捕捉按钮点击可能无法拾取所有表单提交,所以在一个静态提交事件处理程序中完成所有操作,例如:
$('#campaignform').submit(function(ev){
var result= calc(this);
if (result<1) {
ev.preventDefault();
alert('prevent default');
}
});
$('#campaignform').submit(function(ev){
var result= calc(this);
if (result<1) {
ev.preventDefault();
alert('prevent default');
}
});