2013-07-23 3 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

Пожалуйста, добавьте ФИКСИРОВАННЫЙ в свой заголовок, чтобы другие знали, что проблема решена. – MathSquared

ответ

0

Проблема, что я должен был используя .disabled, а не .Disable в моей JS-функции.

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;  
} 

Edit: извините, страница была загружена, и я не заметил dandavis комментария. Кроме того, в моем ответе я изменил document.getElementById ('localevalue') для document.getElementById ('значение')

+0

человек, вам действительно нужно переделать ... – dandavis

+0

Извините, дандавис, это было не мое намерение. Кроме того, у меня недостаточно репутации для публикации комментариев, поэтому ответ был единственным способом. –

+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 :)

Смежные вопросы