2010-09-02 83 views
2

好的我有一個表單,我通過dataannotation進行了一些驗證,這是客戶端以及服務器端驗證,如某些字段已經存在。我沒有在頁面上的JavaScript驗證。現在我的問題是,如果用戶多次按下保存按鈕(他一直按住按鈕15次,在我的情況下頁面停留在那裏,並且已經存在的字段已經存在),我應該怎麼做。你們爲此做了什麼?ASP.NET MVC按鈕多次點擊

我做了什麼(這工作正常在Firefox,但不是在IE),它無論禁用按鈕什麼只需點擊即

$(document).ready(function() { 
    $("#btn").submit(function() { 
     $('#btn').attr('disabled', 'disabled'); 
    }); 
}); 
+0

你已經回答了你自己question-禁用按鈕,直到回傳完成是防止多種回傳的最佳途徑之一。請注意,只適用於支持JavaScript的瀏覽器。 – 2010-09-02 13:50:13

+0

它不工作在ie,它直接的方式禁用按鈕像一個按鈕點擊 – maztt 2010-09-02 14:09:18

回答

2

將疊加層放在整個頁面上方。疊加層可防止用戶點擊兩次並提供一些反饋。 blockUI plugin做得很好。

編輯:

$(document).ready(function() { 
$("#btn").click(function() { 
    $('#btn').attr('disabled', 'true'); // Disable the button if you like 
    $.blockUI(); // Blocking the page with a standard message. 
}); 
}); 
+0

不錯,但如果有人給我的幫助將是偉大的代碼? – maztt 2010-09-02 16:50:53

0

後嘗試使用.live或者你可以後隱藏按鈕被按下。

$(document).ready(function() { 
    $("#btn").live("click", function() { 
     $('#btn').attr('disabled', 'disabled'); 
//or 
     $('#btn').hide(); 
    }); 
});