2010-02-06 62 views
5

使用jQuery,我試圖禁止這樣的輸入域:如何使用jquery禁用輸入類型=「圖像」的正確方法?

<input id="submit" type="image" src="submit.jpg"> 

我想要做的是禁用按鈕,改變與不同的圖像(submitGreyed.jpg)圖像在視覺上通知該按鈕被禁用。

具有以下線I禁用按鈕:

JQuery("#submit").attr('disabled','true'); 

然後我改變圖像用:

JQuery("#submit").attr('src','submitGreyed.jpg'); 

和一旦停用我提交表單與:

JQuery("#form").submit(); 

第二行有一些奇怪的行爲;有時有效,有時不起作用。

當它工作時,按鈕被禁用,圖像改變,表單被提交; 當它不起作用時,按鈕被禁用,表單被提交但圖像沒有改變。

我該如何解決這個問題?

+1

它以什麼方式不起作用?你的意思是它在某些瀏覽器中打破了嗎? – Matchu 2010-02-06 01:47:06

+0

是的,它不適用於Firefox 3.5.7和safari。 一旦圖像第一次出現,它就開始工作。 但是,當我關閉並重新打開瀏覽器時,它不再工作。 – systempuntoout 2010-02-06 01:50:08

+1

您的報價在雙引號和單引號之間不平衡。 #form缺少完整的報價 – user113716 2010-02-06 01:50:45

回答

9

這不回答你的問題完全是,但我希望它能幫助:

首先,它應該是disabled="disabled"所以用這個:

jQuery("#submit").attr('disabled','disabled'); 

而且我不知道你變灰按鈕的樣子,但你可以嘗試只使用不透明度:

jQuery("#submit").attr('disabled','disabled').css('opacity',0.5); 

更新我無法複製的問題,所以在這裏是我的建議:

使用絕對路徑的圖像,而不是一個相對的,並設置兩個屬性在同一時間(雖然設置一前一後並沒有改變我的測試):

jQuery("#submit").attr({ 
    disabled: 'disabled', 
    src:  '/images/submitGreyed.jpg' 
}); 

由於在我的測試中我使用了完整路徑,可能會影響它一點。

View a demo here

+1

'Disable:true'也可以通過jQuerry工作。我不確定它是否接受它的瀏覽器或jQuery。瀏覽器可能會看到具有任何價值的屬性。 – alex 2010-02-06 02:08:36

相關問題