2012-07-22 64 views
0

好了,所以我有這個形式爲什麼prop禁用會導致導軌形式的按鈕無法啓動?

= form_tag 'some_controller/create', :remote => true do 
    ... 
    ... 
    .right= submit_tag 'Submit Me', :id => 'submit_me' 
    .clear 

這裏是我的create.js.erb

$('#submit_me').remove(); 

和我的application.js文件

$('#submit_me').live('click', function(){ 
    $(this).val("One moment please..."); 
    $(this).prop("disabled", true); 
}); 

的問題是,當我點擊它的形式不提交。如果我參加了$(this).prop("disabled", true);

然後將其提交很好,一切運作良好,但是這沒有道理,爲什麼我不能禁用按鈕...任何建議

+2

手動提交表單它的工作原理是這樣,因爲按鈕的默認行爲發生*事件處理程序運行後。如果此時按鈕被禁用,表單不會被提交。 – Pointy 2012-07-22 16:55:28

+0

@積分,正好!但令我驚訝的是,IE瀏覽器似乎提交了表單,而Chrome和Firefox則沒有。 – Adi 2012-07-22 17:00:34

回答

2

我想你應該在這裏處理更合適的事件在這種情況下爲submit。此外,don't use .live()

$('#Parent').on('submit', '#theForm',function(){ 
    $('#submit_me').val("One moment please..."); 
    $('#submit_me').prop("disabled", true); 
}); 

這裏有兩點要注意:

  • 如果你不知道'#Parent'肯定的,你可以使用'body'
  • click的工作,但你必須這樣做$('#theForm').submit()
+0

+1用於LiveIsDeprecated頁面。我只能想象在IE6頁面上的憤怒程度:) – jdoe 2012-07-22 17:35:40