2011-09-23 72 views
4

我禁用我的範圍輸入,但在鉻顯示它變灰,但它仍然可用。範圍輸入禁用不起作用鉻

<input type="range" disabled min="0" max="100"/> 

我會認爲上述不會讓你改變它的值。

我做錯了嗎?

jsFiddle

相關規範Disabled

+2

聽起來像一個錯誤,你應該報告。 – Ryan

+0

@minitech這太糟糕了,他們的報告系統是一個巨大的黑洞。 – Andrew

+0

就是這樣。如果腳本被禁用,你可以嘗試一個連續重置該腳本的腳本,但這是一個可怕的黑客行爲。對不起,沒有太多的幫助:( – Ryan

回答

1

這是鉻錯誤報告,猜想只需要等待版本15作爲評論者提到。

Bug 54820

0

我找到了一個鉻老生常談的解決方案,因爲它似乎並不像您可以根據用戶輸入禁用它。把一個div放在它上面,這樣用戶就不能和它進行交互。不漂亮,但工程:

<div style="position:relative;"> 
    <div style="position:absolute;z-index:5;width:100%;height:100%;"></div> 
    <input type="range" disbaled=True min="0" max="100" value="0"/><span id="v">100</span> 
</div> 
+0

OP包含一個jsFiddle,你應該試過了,你應該已經閱讀過這篇文章-1 – Ryan

+0

只是爲了解釋Matto,禁用可以在沒有值的情況下使用,但是你不能通過javascript設置一個沒有值的屬性,所以人們通常使用disabled作爲值。無論我的示例如何,chrome都會看到它被禁用,它只是沒有做任何事情關於它而不是改變顏色。 – Andrew

1

您可以刪除特定的滾動組的所有綁定事件做出滾動禁用,如:

<div id="fieldset1"> 
<input type="range" disabled min="0" max="100" readonly="1"/> 
</div> 

<script> 
$(":range").rangeinput(); 
$('#fieldset1 *').unbind(); // for all events 
</script> 

其作品.. 無需禁用文本字段;東陽表單提交該字段將不會發布..

0

我的解決方案JSFIDDLE(工作在默認的Android瀏覽器罰款) HTML

<input id="range" type="range" value="10" min="0" max="30" step="10"/> 
<button id="disableBtn">Disable</button> 

JS

document.getElementById('disableBtn').addEventListener('input', filter); 
document.getElementById('disableBtn').addEventListener('click', disable); 

function disable(){ 
    document.getElementById('range').disabled = !document.getElementById('range').disabled; 
} 

function filter(){ 
    if(document.getElementById('range').disabled){ 
     document.getElementById('range').value = document.getElementById('range').defaultValue; 
    } 
}