Javascript:单击收音机时禁用输入类型文本

时间:2014-04-25 12:15:41

标签: forms javascript

我有一点问题,我希望你可以帮助我,我试图在用户点击收音机时禁用输入文字。

我的代码:

<script> 
function grise(radio) 
{
if(radio[0].checked){
    document.anglais.annee.disabled=true;
    document.anglais.niv.disabled=true;
    document.anglais.testuti.disabled=true;} 
if(radio[1].checked){
    document.anglais.annee.disabled=false;
    document.anglais.niv.disabled=false;
    document.anglais.testuti.disabled=false;} 
} 
</script>

和表格:

<form name="anglais">

<input type="radio" id="NON" name="EVAL_ANGLAIS" onclick="grise(this.form.EVAL_ANGLAIS)" checked="checked" value="NON" <?=($personne->EVAL_ANGLAIS == "NON")?"checked":""?> >NON</br></br>

<input type="radio" id="OUI" name="EVAL_ANGLAIS" onclick="grise(this.form.EVAL_ANGLAIS)" value="OUI" onclick="active()" <?=($personne->EVAL_ANGLAIS == "OUI")?"checked":""?>>OUI</br></br>

Année : <input id="annee" disabled type="text" name="EVAL_ANGLAIS_ANNEE" style="width:30px; " value="<?=$personne->EVAL_ANGLAIS_ANNEE?>" >

Test utilisé : <input id="testuti" disabled type="text" name="EVAL_ANGLAIS_TEST" style="width:50px; " value="<?=$personne->EVAL_ANGLAIS_TEST?>" >

Niveau atteint : <input id = "niv" disabled type="text" name="EVAL_ANGLAIS_NIV" style="width:50px; " value="<?=$personne->EVAL_ANGLAIS_NIV?>" >

</form>

2 个答案:

答案 0 :(得分:2)

您应该尝试document.getElementById('annee').disabled=true;

答案 1 :(得分:2)

通过将设置为他们所在的元素来调用侦听器,因此:

<input type="radio" id="NON" name="EVAL_ANGLAIS" onclick="grise(this.form.EVAL_ANGLAIS)" ...>

可以是:

<input type="radio" id="NON" name="EVAL_ANGLAIS" onclick="grise(this)" ...>

所以你知道哪一个被点击了。由于只有两个按钮,因此必须检查一个按钮,而不检查一个按钮,因此您只需要测试一个按钮的检查以了解另一个按钮。

但是,不要使用两个单选按钮,而是考虑使用单个复选框,并根据是否选中来启用或禁用输入:

<input type="checkbox" onclick="grise(this)" ...>

然后在函数中:

function grise(checkbox) {
  var form = checkbox.form;
  form.annee.disabled = checkbox.checked;
  form.niv.disabled = checkbox.checked;
  form.testuti.disabled = checkbox.checked; 
}

此外,没有必要:

<input ... checked="checked" ...>

checked属性是boolean,它不需要值。该值仅针对XHTML引入,而XHTML未在Web上使用,因此只需使用:

<input ... checked ...>

</br>相同,请使用<br>