2014-03-31 36 views
0

我有一個輸入提交按鈕被禁用。如果有人點擊它,我想顯示一個彈出式模式,基本上展示了爲什麼該按鈕被禁用。單擊禁用的輸入按鈕時顯示模式彈出窗口?

該按鈕被禁用,因爲該特定產品缺貨。該模式將解釋這一點。

我輸入按鈕看起來是這樣的:

<input type="submit" id="StandardProductAddToCart" name="Add to Cart" value="ADD TO CART" alt="Add to Cart" style="cursor:not-allowed;" disabled="disabled"/> 
+1

[禁用的輸入事件]的可能重複(http://stackoverflow.com/questions/3100319/event-on-a-disabled-input) – JoDev

回答

1

由Andy-E之前回答這裏找到:Event on a disabled input

禁用元素不火鼠標事件。大多數瀏覽器將 樹中的禁用元素髮起的事件傳播到DOM 樹上,因此可以將事件處理程序放置在容器元素上。 但是,Firefox並沒有出現這種行爲,當你點擊一個禁用的元素時,它根本就沒有任何東西 。

我想不出更好的解決方案,但是,對於完整的跨瀏覽器兼容 ,你可以把一個元素在殘疾人 輸入前,趕上元素上的點擊。這裏是什麼,我的意思 一個例子:

<div style="display:inline-block; position:relative;"> 
    <input type="text" disabled /> 
    <div style="position:absolute; left:0; right:0; top:0; bottom:0;"></div> 
</div>​ 

的jQuery:

$("div > div").click(function (evt) { 
    $(this).hide().prev("input[disabled]").prop("disabled", false).focus(); 
});​ 

例子:http://jsfiddle.net/RXqAm/170/(更新使用jQuery 1.7與prop代替attr)。

+0

真的非常感謝。這工作,而其他解決方案失敗。 :) –

0

瀏覽器禁用DOM事件(如點擊)表單元素被禁用。 你可以把一個div周圍的提交按鈕,並附上點擊功能,對於當提交按鈕被禁用:

<div id="submit-div"> 
    <input type="submit" id="StandardProductAddToCart" name="Add to Cart" value="ADD TO CART" alt="Add to Cart" style="cursor:not-allowed;" disabled="disabled"/> 
<div> 

$('#submit-div').click(function(event){ 
    if ($('#StandardProductAddToCart').attr('disabled') == 'disabled') 
    { 
     /* Do your modal popup */ 
    } 
}); 

這是從我的頭頂正好代碼,因此它可能不是完全正確。但你明白了。

相關問題