0

我有一个设置,正在评估文本框的 onblur 事件以进行验证。如果无效,验证会打开一个确认对话框。提交(img 元素)的 onclick 提交表单。问题是当用户在文本框中键入任何内容并直接单击 img 按钮时,这两个事件都会触发。对话框打开,但表单也被提交。不应该是这样的:调用 blur 事件应该取消提交事件或同步两者。在jsfiddle 中它工作正常。知道它可能是什么吗?我可以检查确认对话框是否打开吗?它是一个纯 JavaScript 组件。我无法弄清楚是否可以检测到。请帮忙!!

示例

<input type='text' id='textbx'/>
<img id='btn' src='http://www.urgenthomework.com/images/submit.jpg'/>

逻辑:

$('#textbx').blur(function(){
    alert("I'm blur");
});
$('#btn').click(function(){
   alert("I'm clicked!!!");
});

但它在小提琴中工作正常。实际上,我在文本框上使用自动完成插件,因此在更改/模糊事件时它会在内部进行验证,我根据需要对其进行了修改。

4

1 回答 1

0

您可以添加指标。

$(function(){
     var isValid = false;
     $('#textbx').blur(function(){

         //some condition
         //for example if length > 4

         if($(this).val().length > 4)
         {
             isValid = true;
         }
     });
     $('#btn').click(function(){
         if(isValid)
         {
             alert("I'm clicked!!!");
         }
     });
});

jsFiddle

于 2013-09-16T11:56:49.177 回答