2012-03-16 3 views
0

Я хочу отключить радиокнопку в формате html в соответствии с выбранными вариантами, если он выберет первый вариант в первой группе переключателей, будут включены 2 варианта во второй группе переключателей , если нет, они будут отключены, вот мой код:Отключить переключатель в соответствии с выбранным выбором

<script language="javascript"> 
function RadioMeuble() { 
    if (document.f.radio1[0].checked) { 
     alert("Vous avez choisi la proposition " + document.f.radio1[0].value); 
     document.f.radio2[0].disabled = false; 
     document.f.radio2[1].disabled = false; 
    } else { 
     document.f.radio2[0].disabled = true; 
     document.f.radio2[1].disabled = true; 
    } 
} 
} 
</script> 
<input type="radio" name="radio1" value="L" id="radio1" onBlur="RadioMeuble()">á louer</label> 
<br> 
<label> 
    <input type="radio" name="radio1" value="V" id="radio1">á vendre</label> 
</p> 
<p>Superficie 
    <label for="textfield"></label> 
    <input type="text" name="superficie" id="Superficie">en Km ²</p> 
<p>Prix 
    <label for="textfield2"></label> 
    <input type="text" name="prix" id="Prix">en DT</p> 
<p>Meublé 
    <input type="radio" name="radio2" id="radio2" value="oui" disabled>Oui 
    <input type="radio" name="radio2" id="radio2" value="non" disabled> 
    <label for="radio2"></label> 
    <label for="radio"></label>Non</p> 

Это не работает. Что с этим не так?

ответ

1

Ну, во-первых, у вас есть дополнительный «}« Во-вторых, вы, вероятно, хотите событие click вместо события размытия. И вы хотите его на обоих переключателях. Далее, что такое document.f? Это не переменная. Затем, даже если бы это было так, я не знаю о браузере, который позволяет использовать элементы формы, как вы пытаетесь. Например, document.f.radio2[0].disabled. Кроме того, ваш переключатель должен иметь уникальные имена.

См. http://jsfiddle.net/vzYT3/1/ для чего-то более разумного.

2

В вашем коде (в последнем случае «слишком много»).

Не используйте onblur EventHandler. Вместо этого вы должны использовать onchange или onclick.

<input type="radio" name="radio1" value="L" id="radio1" onchange="RadioMeuble()"> 

или

<input type="radio" name="radio1" value="L" id="radio1" onclick="RadioMeuble()"> 

НТН,

--hennson

0

Вы могли бы улучшить свои кодирования немного, проверьте этот пример:

<input type="radio" id="r1-1" name="r1" value="1"> 
<label for="r1-1">Option 1</label> 
<input type="radio" id="r1-2" name="r1" value="2"> 
<label for="r1-2">Option 2</label> 
<hr /> 
<input type="radio" id="r2-1" name="r2" value="a"> 
<label for="r2-1">Option A</label> 
<input type="radio" id="r2-2" name="r2" value="b"> 
<label for="r2-2">Option B</label> 

и

function byId(id) { 
    return document.getElementById(id); 
} 

window.onload = function() { 
    byId('r1-1').onchange = byId('r1-2').onchange = function() { 
     byId('r2-1').disabled = byId('r2-2').disabled = byId('r1-1').checked; 
    } 
} 

Запуск пример по адресу: http://jsfiddle.net/5Mp9m/

Это не было бы неплохо использовать библиотеку JavaScript, как Jquery.

+0

Ваш пример использует Mootools – yossico