2016-07-05 10 views
0

視圖是具有多於一個按鈕防止表單提交當存在於一個視圖多於一個鍵

<div class="row"> 
<div class="col-md-3"> 
    @if(Model.Q>1) 
    { 
     @Html.ActionLink("Previous","Perform","Test",new{q=Model.Q-1},new{@class="btn btn-success",id="test-previous-btn"}) 
    } 
    <input type="submit" value="Next" class="btn btn btn-success" id="test-next-btn" /> 
</div> 
<div class="col-md-3"> 
    <input type="button" data-confirm="Are you sure that you want to submit?" value="Submit" class="btn btn btn-primary" id="test-submit-btn" /> 
    <input type="button" value="Cancel" class="btn btn-danger" id="test-cancel-btn" /> 
</div> 

我想從用戶提交按鈕的確認,所以,我使用以下javascript函數

$('#test-submit-btn').click(function(event){ 
    var result=confirm("Are you sure! You want to submit?"); 
    if(!result) 
    { 
     event.preventDefault(); 
     return false; 
    } 

}); 

它不會阻止提交發生,而不管用戶響應的是什麼。但是,如果我刪除其他按鈕,它按預期方式運行。

您的解決方案請!

+1

你需要移動'e.preventDefault();'該函數 –

+1

的頂部這可能是因爲你正試圖將事件處理程序附加到' #test-submit-btn'元素出現在DOM中之前。 –

+0

函數成功執行。所以沒有DOM存在的問題。只是,它不能防止回發發生 – RAK

回答

0

e在您的點擊事件功能中不存在。您需要將其更改爲

event.preventDefault(); 

編輯: 大鬍子駱馬是正確的。您需要在點擊事件開始時阻止默認操作,否則它會提交表單。你需要做這樣的事情:

$('#test-submit-btn').click(function(event){ 
    event.preventDefault(); 
    var result=confirm("Are you sure! You want to submit?"); 
    if(result) 
    { 
     // this is assuming that the first form found is the one 
     // you want to submit, otherwise you will need to use the 
     // selector for the form: $("#my-form").submit(); 
     $(this).parents("form").submit(); 
    } 
}); 
+0

謝謝,我在這裏寫錯了'e'。事實上,這是事件。我已經編輯了我的問題。 – RAK

+0

更新了我的答案! –