2011-07-15 140 views
0

去除禁止使用jQuery後,我要提交先前禁用的按鈕。當我刪除的disable的ATTR然後做一個.click()它不會觸發,並送我到下一個頁面。但是,如果我執行alert("XYZ");然後.click()它會將我發送到下一頁。我認爲這需要花費時間來禁用然後單擊(在點擊事件被觸發之前它不會禁用)。點擊按鈕從

「損壞」行爲的工作示例http://jsfiddle.net/LmFjd/71/ - 這就是我如何設置代碼並確切地說不適合我的工作。請注意,它會觸發onsubmit事件,但實際上並未提交。

工作實例預期的行爲中:如果你把.show()在那裏它的工作原理:http://jsfiddle.net/LmFjd/70/

當在removeAttr和點擊()它的工作原理與警報,否則點擊不觸發。

爲了澄清,我使用jQuery的1.5.1.min.js。這是一個使用Apache Tomcat 6.0.29的JSP頁面。這是一個Spring MVC的Web應用程序,和我使用一個jQuery用戶界面對話框內的部分解僱按鈕

hackish的解決方案:把.click()使其工作.show()之前。

+5

請提供說明問題的實際代碼。 – user113716

+0

'.attr()'是同步的,所以要'點擊的後續調用()'不會觸發,直到'ATTR()'完成。 [示例](http://jsfiddle.net/LmFjd/)如果存在計時問題,則可能只是因爲引入了一些*異步*代碼。 – user113716

+0

#1。那個網站很棒Patrick,謝謝你介紹我。 #2。給出的代碼適用於該網站,但不適用於我的網站,我不確定,但我知道現在不是時間問題。 – Nicholas

回答

0

可以有兩個東西都可以通過JQuery的做做你的事就是刪除歸因禁用=禁用和文件準備使用隱藏和做一些甚至再次顯示您所需的輸入框,代碼做如下:

$(document).ready(function() { 
    $('#edit').hide(); 
    "Discard changes": function() { 
     $(this).dialog("close"); 
     alert(actionButton); 
     $('#edit').show(); 
    } 
}); 
+0

在我的預感上,我嘗試了一些東西,這讓我大笑,它的作品。如果我在點擊之前放置了一個.show(),即使該按鈕已經顯示,它仍然會觸發它... – Nicholas

+0

你能提供確切的代碼來完成這件事:http://lawmirror.com/books/ order.php?passed =&book = dipc08有三種形式,並根據用戶的要求以不同的方式顯示它們,因爲沒有正確的代碼我不知道出了什麼問題 – Vineet1982

+0

http://jsfiddle.net/LmFjd/71/提供的示例。 – Nicholas