在mousedown

时间:2016-04-18 11:11:41

标签: jquery

我有一个问题。对于我的jquery代码,有一个click事件将在成功验证后提交表单。但是,测试人员提出了一个问题。

测试人员的问题是:

  1. 为输入框验证失败生成错误
  2. 现在通过在点击按钮上传递所有验证来清除错误。
  3. 如果用户按下按钮的下半部分以通过所有验证,则按钮会向上移动。但是,如果他点击上半部分,表格会提交所需的内容。
  4. 测试人员说从可用性的角度来看这是错误的。
  5. 他说如果所有验证都通过,即使他点击下半部分,表格也应该提交。
  6. 队友找到了解决方案。他说如果我们在按钮上的jquery mousedown上触发click事件,即使用户点击按钮上的任何部分,表单也会提交。

    此解决方案有效,但新问题上升了。 click事件在mousedown上触发了两次,导致每次单击时提交两次表单,这是完全不可接受的,因为有一些依赖代码。

    这是我的mousedown功能:

     $("#button").mousedown(function(event){
                if(event.which == 1){
                $("#button").click();
            }
        });
    

    这是我的点击:

     $("#button").click(function() {
    
    //code
    
    }
    

    当我删除mousedown时,一切都工作正常,但测试人员原始问题重新开放。我为此而努力。所有高级开发人员都尝试过他们的手,但未能成功。

    我尝试取消绑定click事件,但这导致mousedown事件被忽略。

    有人可以帮帮我吗?

    我们对应用程序的其他页面也做了同样的事情,并且工作正常。只有这一点,我们才会面临一个问题。

    请注意,代码位于单独的.js文件中

1 个答案:

答案 0 :(得分:0)

您可以将validate移动到新功能中,然后通过单击/鼠标按下来调用。

function validate() {
 // code goes here
}
$("#button").click(function() {
  validate();
}
$("#button").mousedown(function(event){
    if(event.which == 1){
        validate();
    }
});
相关问题