文本输入更改时禁用选择框

时间:2018-07-26 10:20:50

标签: javascript html

我有一个带有动态创建的Select Box和两个Inputs类型的表单。

当ID为FirstName的输入文本从空白更改时,我试图禁用选择框。我想我已经接近了,但是我的功能似乎不想工作。

很抱歉所有菜鸟问题。我先尝试弄清楚,尝试许多不同的想法,然后,如果失败,我会进行大量研究,然后当我放弃时,来到这里...这个地方是丰富的知识来源。

我希望有一天我能帮忙。尝试输入和text,但无法启动我的函数。而且像通常的chrome调试器一样,完美无缺。

我没有显示选择框的代码,但只知道其ID为“常规”

onchange
function regcheck() {
  if document.getElementById('FirstName').value == "" {
    document.getElementById('regulars').disabled = false;
  } else {
    document.getElementById('regulars').disabled = true;
  };
}

4 个答案:

答案 0 :(得分:1)

 function regcheck() {
      if (document.getElementById('FirstName').value === "") {
        document.getElementById('regulars').removeAttribute('disabled');
      } else {
        document.getElementById('regulars').setAttribute('disabled', 'disabled');
      };
    }
<select id="regulars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
<br>
<input type="text" name="FirstName" id = "FirstName" value="" oninput="regcheck()";><br>
<input type="text" name="FirstSong" value="">
   

答案 1 :(得分:1)

就像评论说的那样。您的代码唯一缺少的是条件中的括号。因此会引发错误。

<script>
function regcheck() {
  if (document.getElementById('FirstName').value == "") {
    document.getElementById('regulars').disabled = false;
  } else {
    document.getElementById('regulars').disabled = true;
  };
}
</script>

<select id="regulars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
<br>
<input type="text" name="FirstName" id = "FirstName" value="" oninput="regcheck()";><br>
<input type="text" name="FirstSong" value="">

答案 2 :(得分:1)

正如其他人所说,示例中缺少常规选项复选框和括号。 这可能会起作用

<html>
<body>
<form action="/action_page.php">
    <input type="text" name="FirstName" id = "FirstName" value="" oninput="regcheck()";><br>
    <input type="text" name="FirstSong#" value="">
    <input type="checkbox" id='regulars' checked>regulars<br>
    <input type="submit" value="Submit">
</form>
<script>
  function regcheck(){
      if (document.getElementById('FirstName').value == "") {
          document.getElementById('regulars').disabled = false;
      }else{
          document.getElementById('regulars').disabled = true;
      };
  }
</script>
</body>

最好将JavaScript放在页面的末尾,以使其与渲染的Dom一起使用

答案 3 :(得分:-1)

有时,在动态更改文档内部的DOM时,通常不起作用。 试用Jquery的“ on”功能。可能有用。