2013-07-23 16 views
1

我是新來的HTML,我知道這個問題已經在這裏問了好幾次,但我已經嘗試了所有的各種解決方案,但都沒有爲我工作。我試圖激活一個字段(默認爲禁用),當從下拉菜單中選擇兩個值中的一個時。這是我爲完成任務而編寫的JavaScript函數。根據同一表單中的下拉菜單的值啓用HTML表單文本框?

function changeTextBox() { 
    comp = document.getElementById('comparator'); 
    if(comp.value=='equalto'||comp.value=='notequalto') 
     document.getElementById('localevalue').disable=false; 
    else 
     document.getElementById('localevalue').disable=true;  
} 

這是下拉菜單

<label style="font-size:16px" for="comparator">Comparator:</label> 
<select id="comparator" name="comparator" onChange="changeTextBox();"> 
    <option value="lessthan">Less Than</option> 
    <option value="lessthanequalto">Less Than or Equal To</option> 
    <option value="greaterthan">Greater Than</option> 
    <option value="greaterthanequalto">Greater Than or Equal To</option> 
    <option value="equalto">Equal To</option> 
    <option value="notequalto">Not Equal To</option> 
    <option value="exists">Exists</option> 
</select> 

而這是需要被激活時,字段「等於」或「不等於」被從下拉菜單中選擇。

<label style="font-size:16px" for="value">Value:</label> 
<input type="number" id="value" disabled/> 

但是,當我選擇其中一個字段時,該框仍處於停用狀態。誰能告訴我我做錯了什麼?

+2

已禁用,未禁用 – dandavis

+0

@dandavis正是它,謝謝 – macklin

+0

請將FIXED放在您的標題中,以便其他人知道問題已解決。 – MathSquared

回答

0

問題是,我本來應該在我的JS函數中使用.disabled,而不是.disable。

1

這應該工作

function changeTextBox() { 
    var comp = document.getElementById('comparator'); 
    if(comp.value=='equalto'||comp.value=='notequalto') 
     document.getElementById('value').disabled=false; 
    else 
     document.getElementById('value').disabled=true;  
} 

編輯:對不起,加載頁面,我還沒有注意到dandavis評論。除此之外,在我的答覆我已經改變了的document.getElementById( 'localevalue')來的document.getElementById( '值')

+0

男人,你必須真的需要代表... – dandavis

+0

對不起,dandavis,這不是我的意圖。此外,我沒有足夠的聲望發表評論,所以答覆是唯一的方法。 –

+0

我只是把你的球稍微拉了一點,沒有大吶。 ;) – dandavis

0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Stack Overflow</title> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
<script> 
function changeTextBox() 
{ 
     var val=$('#comparator').val(); 

      alert(val); 
     if(val==='equalto' || val==='notequalto') 
     { 
     $('#value').removeAttr("disabled");    
     } 
     else{$('#value').prop('disabled', true);} 
} 
</script> 
</head> 
<body> 
<label style="font-size:16px" for="comparator">Comparator:</label> 
    <select id="comparator" name="comparator" onChange="changeTextBox();"> 
     <option value="lessthan">Less Than</option> 
     <option value="lessthanequalto">Less Than or Equal To</option> 
     <option value="greaterthan">Greater Than</option> 
     <option value="greaterthanequalto">Greater Than or Equal To</option> 
     <option value="equalto">Equal To</option> 
     <option value="notequalto">Not Equal To</option> 
     <option value="exists">Exists</option> 
</select> 

<label style="font-size:16px" for="value">Value:</label> 
<input type="number" id="value" disabled/> 
</body> 
</html> 

CHEERSS :)