2009-09-23 46 views
0

失敗,這是我的簡單功能簡單的jQuery功能在Safari,Chrome和IE

$('#save_button').click(function() { 
     $(this).attr('disabled',true).val('Saving'); 

     $('#new_record_form').ajaxForm({ 
     url: '/', 
     type: "POST", 
     dataType: "json", 
     beforeSubmit: function(){ alert('Boo!'); }, 
     success: function(){ alert('Hello!'); } 
     }); 
}); 

這工作正常,在Firefox,但無法在Internet Explorer,Chrome或Safari。

評論此行$(this).attr('disabled',true).val('Saving');似乎使事情工作。

發生這種情況的原因是什麼?

回答

1

html input被禁用時,它不應該能夠發送輸入。 嘗試將屬性更改爲「只讀」。

0

看來你不能修改禁用的控制......

,但也許這樣就可以解決這個問題:

$('#save_button').click(function() { 
     $(this).val('Saving'); 
     $(this).attr('disabled',true); 

     $('#new_record_form').ajaxForm({ 
     url: '/', 
     type: "POST", 
     dataType: "json", 
     beforeSubmit: function(){ alert('Boo!'); }, 
     success: function(){ alert('Hello!'); } 
     }); 
}); 
+0

謝謝,但沒有解決與其他瀏覽器不工作的問題... – schone 2009-09-23 10:28:31

1

我平時寫$(accessor).attr("disabled", "disabled");導致HTML,看起來像<... disabled="disabled" .../>正在生產。我不知道你可以使用你的語法。你可以試試這個,看看它是否有效?

要刪除該屬性,我使用$(accessor).removeAttr("disabled");

+1

'真'是更合適的價值。 jQuery的'attr()'改變了JavaScript/DOM屬性,而不是HTML屬性(儘管jQuery試圖描述差異)。 'disabled'是一個布爾屬性。將它設置爲'「disabled」'也適用,因爲在布爾上下文中非空字符串強制爲'true'。 – bobince 2009-09-23 12:27:52