2017-01-16 20 views
0

我有一個分爲幾個部分的窗體。當用戶點擊「繼續」時,我有一個jquery腳本來檢查是否填寫了所有必填字段。如果沒有,則會出現一個包含「是」和「否」的警告和按鈕的框(實際上它們是<a>標籤)。我將一個onclick事件附加到觸發函數的「yes」按鈕上。該功能起作用,但在地址欄(website.com/page#)中出現#,我猜測是因爲我的代碼中的event.preventDefault();無法正常工作。如何讓event.preventDefault在動態函數上工作

這裏是添加onclick事件功能:

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(); 
    } 
} 

這是我加入的事件標籤:

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

我最後調用函數是這樣的:

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

那裏面工作的默認。謝謝! –

相關問題