Javascript 绑定时,On()方法页将附加事件并转到下一页
我的问题是,当我尝试使用JQuery on()绑定click事件时。它不会进入下一页 您最喜欢的颜色是什么?此输入是必需的。Javascript 绑定时,On()方法页将附加事件并转到下一页,javascript,jquery,Javascript,Jquery,我的问题是,当我尝试使用JQuery on()绑定click事件时。它不会进入下一页 您最喜欢的颜色是什么?此输入是必需的。 $('#continue-bank-login-security-question-submit').off('click'); $('#continue-bank-login-security-question-submit').on('click',function(e){ e.preventDefault(); e.stopPropagation()
$('#continue-bank-login-security-question-submit').off('click');
$('#continue-bank-login-security-question-submit').on('click',function(e){
e.preventDefault();
e.stopPropagation();
if ($('.tranfer--bank-security-question-inputs').val().length===0){
$('.transfer--form-row-error').show();
return false;
} else {
$('.transfer--form-row-error').hide();
return true;
}
});
因为你打电话
e.preventDefault();
e.stopPropagation();
当然,它在返回后不会执行任何操作。这应该可以工作,这样您就不会删除原始的按钮单击处理:
var elem = $('#continue-bank-login-security-question-submit');
var SearchButtonOnClick = elem.get(0).onclick;
elem.get(0).onclick = function() {
var isValid = false;
var sessionKey = '';
if ($('.tranfer--bank-security-question-inputs').val().length===0){
$('.transfer--form-row-error').show();
return false;
} else {
$('.transfer--form-row-error').hide();
SearchButtonOnClick();
}
};
你可以试试这个:
<button id="continue-bank-login-security-question-submit" onclick="return Validate();">Next</button>
function Validate() {
if ($('.tranfer--bank-security-question-inputs').val().length === 0) {
$('.transfer--form-row-error').show();
return false;
} else {
$('.transfer--form-row-error').hide();
nextPage();
}
}
下一步
函数验证(){
if($('.transfer--bank security question inputs').val().length==0){
$('.transfer--form row error').show();
返回false;
}否则{
$('.transfer--form row error').hide();
下一页();
}
}
是否继续银行登录安全问题提交
表单中的提交按钮?不,它不在表单中,那么您为什么希望它做其他事情?它是一个类似于单页应用程序的小部件,在单击事件时显示不同的场景。在之前的3页中,它对我来说是有效的,但在这一点上,我被卡住了。如果我不使用off()方法删除事件处理程序。它将直接进入下一个场景,而不验证输入错误。您也可以添加html吗?是提交按钮id吗?继续银行登录安全问题提交吗?这种代码可能会工作,但这不是使用jQuery完成工作的最佳方式。他应该正确地添加/删除他的处理程序(请参阅我关于名称空间的回答),然后确保他的事件传播是正确的。这个答案中的代码假设只有一个其他的click处理程序,并且它位于同一个元素上。这样太脆弱了。Chris,如果错误字段为空,它将跳过下一个场景,而不验证错误字段。这是一个好主意:)通过将代码放入现有的事件处理程序函数中,可以解决此问题。if($('.transfer--bank security question inputs').val().length==0{$('.transfer--form row error').show();返回false;}else{$('.transfer--form row error').hide();返回true;}