我想在代碼中啓用/禁用jQuery提交按鈕。現在,所有東西都可以運行,直到我提交表單,它經過服務器端驗證並失敗,這會將我帶到一個帶有後退按鈕的錯誤頁面,當我單擊後退按鈕時,我會返回到表單頁面並且該按鈕仍處於禁用狀態。有什麼想法嗎?使用jQuery和Coldfusion服務器代碼啓用/禁用提交按鈕
代碼:
<input type="submit" value="Submit" id="SubmitBtn" name="SubmitBtn">
<script type="text/javascript" language="javascript">
if(typeof window.submitForm == "undefined") {
window.submitForm = "true";
}
$(function() {
$("input:submit").button().click(function() {
var submitCheck = window.submitForm;
$(this).button("disable").val("Processing...");
if(submitCheck==="true") {
$(this).closest("form").submit();
} else {
$("input:submit").button("enable").val("Submit");
return false;
}
});
});
$(window).unload(function() {
setTimeout(function() {
$("input:submit").button("enable").val("#ATTRIBUTES.enabledText#");
}, 300);
});
</script>
這裏是正在發生的事情:當我點擊提交按鈕,文本更改爲「處理...」,按鈕被禁用。服務器代碼工作,返回錯誤,然後單擊後退按鈕(瀏覽器欄或JavaScript:history.back()按鈕)。當我返回到表單頁面時,文本已變回「提交」,但該按鈕仍處於禁用狀態。我該如何解決?
當後退按鈕被擊中時,瀏覽器是不是完全重新加載?我錯過了別的嗎?
此外,假設服務器端的錯誤不能改變,我不能簡單地回發到窗體本身(即錯誤頁面會顯示)。我也測試了window.submitForm變量,然後返回true。
你不需要===操作數,如果你只是檢查布爾值 – 2011-03-17 16:20:48
在什麼瀏覽器發生這種情況?我的猜測是FireFox? – 2011-03-17 17:57:28
是的,這是在Firefox中。只需在IE8,Chrome和Safari中檢查,他們都能很好地工作。 – Thomas 2011-03-17 18:12:26