2017-01-16 13 views
0

私はセクションに分割されたフォームを持っています。ユーザーが「続行」をクリックすると、必要なフィールドがすべて記入されているかどうかを確認するjqueryスクリプトがあります。いずれかが選択されていない場合は、「はい」と「いいえ」の警告とボタン(実際には<a>タグ)が表示されたボックスが表示されます。私は関数をトリガーする 'はい'ボタンにonclickイベントを添付します。この機能は機能しますが、アドレスバー(website.com/page#)に#が表示されます。これは私のコードのevent.preventDefault();が機能していないためです。このようなものですevent.preventDefaultを動的関数で動作させる方法

<div class="medBtn short"> 
    <div class="btnTbl"> 
     <a href="#" id="yesBtn">Yes</a> 
    </div> 
</div> 

私が呼び出し元に終わる機能:ここで

function checkSection (event, check, goTo) { 
    event.preventDefault(); 
    var emptyFields = "0"; 
    $("#ia"+check+"Div .check").each(function() { 
     var val = $(this).val(); 

     if (val == "") { 
      emptyFields++; 
     } 
    }); 

    if (emptyFields >= 1) { 
     $(".mask").show(); 
     $("#warningBox").show(); 
     $(document).on("click", "#yesBtn", function() { 
      var x = window['save'+check]; 
      x(event, goTo); 
      $("#warningBox").hide(); 
      $(".mask").hide(); 
     }); 
    } else { 
     var x = window['save'+check]; 
     x(event, goTo); 
     $("#warningBox").hide(); 
    } 
} 

は私がにイベントを追加していたタグである:ここでは

は、onclickイベントを追加する機能です

function saveContact(event, val) { 
    event.preventDefault(); 

    //Do Stuff - This is the function where event.preventDefault(); isn't working 
} 

私が言ったように、機能はまだ機能しているので、もし私が回っていくことができない罰金。私はちょうどアドレスバーに#があるのが好きではありません。

答えて

1

イベントはあなたが働いた実際のイベントハンドラ

$(document).on("click", "#yesBtn", function(event) { 
    event.preventDefault(); 
    .... 
}) 
+0

内のデフォルトを防ぐ

を発生するまでイベントオブジェクトは存在しません。ありがとうございました! –

関連する問題