我有一个问题。对于我的jquery代码,有一个click事件将在成功验证后提交表单。但是,测试人员提出了一个问题。
测试人员的问题是:
队友找到了解决方案。他说如果我们在按钮上的jquery mousedown上触发click事件,即使用户点击按钮上的任何部分,表单也会提交。
此解决方案有效,但新问题上升了。 click事件在mousedown上触发了两次,导致每次单击时提交两次表单,这是完全不可接受的,因为有一些依赖代码。
这是我的mousedown功能:
$("#button").mousedown(function(event){
if(event.which == 1){
$("#button").click();
}
});
这是我的点击:
$("#button").click(function() {
//code
}
当我删除mousedown时,一切都工作正常,但测试人员原始问题重新开放。我为此而努力。所有高级开发人员都尝试过他们的手,但未能成功。
我尝试取消绑定click事件,但这导致mousedown事件被忽略。
有人可以帮帮我吗?
我们对应用程序的其他页面也做了同样的事情,并且工作正常。只有这一点,我们才会面临一个问题。
请注意,代码位于单独的.js文件中
答案 0 :(得分:0)
您可以将validate移动到新功能中,然后通过单击/鼠标按下来调用。
function validate() {
// code goes here
}
$("#button").click(function() {
validate();
}
$("#button").mousedown(function(event){
if(event.which == 1){
validate();
}
});