0

テキストボックスの onblur イベントが検証のために評価されるセットアップがあります。検証は、有効でない場合は確認ダイアログを開きます。submit(img要素)のonclickでフォームを送信します。問題は、ユーザーがテキストボックスに何かを入力して img ボタンを直接クリックすると、両方のイベントが発生することです。ダイアログ ボックスは開きますが、フォームも送信されます。次のようであってはなりません。blur イベントを呼び出すと、submit イベントがキャンセルされるか、両方が同期されます。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!!!");
         }
     });
});

jsフィドル

于 2013-09-16T11:56:49.177 に答える