【问题标题】:how to disabled some select button's option depending upon another input field using javascript?如何根据使用 javascript 的另一个输入字段禁用某些选择按钮的选项?
【发布时间】:2023-03-08 19:25:01
【问题描述】:

我有一个带有 3 个选项的选择按钮。我上面还有另一个文本框。根据文本框的值,我想使用 javascript 禁用其中一个选项。

这是我的 HTML 代码:

<label for="name">Name of the candidate: </label><br>
<input type="text" name="e_name" value="<%=e.getName() %>" onfocus="ViewType(this.value);">
<br><br>
<label for="division">Choose Division</label><br>
<select name="e_division" id="selectbtn"><option>Select One</option><option>MECH</option><option>CSE</option><option>CE</option></select>

这是我的 JavaScript 代码:

function ViewType(val){
var op=document.getElementById("selectbtn");
for(var i=0;i<=op.length();i++){
if(val == "Amit"){
op.option[1].disabled=true;
op.option[2].disabled=true;
}
}
}

这里的意思是如果名称是“Amit”,那么只有“MECH”选项可见。对于任何其他名称,所有选项都将可见。

【问题讨论】:

标签: javascript html jsp dom


【解决方案1】:

我在下面的代码中使用了onkeyup 事件,这样每当用户输入任何名称时,都会调用该函数来执行必要的操作。

演示代码

function ViewType(val) {

  var op = document.getElementById("selectbtn").getElementsByTagName("option");
  for (var i = 0; i < op.length; i++) {
    if (val.toLowerCase() == "amit") {
      //checking if option value is not mceh 
      if (op[i].value != "MECH") {
        //disable other option
        op[i].disabled = true;
      }
    } else {
      //enable all options
      op[i].disabled = false;
    }
  }
}
<label for="name">Name of the candidate: </label><br>
<input type="text" name="e_name" onKeyup="ViewType(this.value);">
<br><br>
<label for="division">Choose Division</label><br>
<select name="e_division" id="selectbtn">
  <option>Select One</option>
  <option value="MECH">MECH</option>
  <option value="CSE">CSE</option>
  <option value="CE">CE</option>
</select>

【讨论】:

    【解决方案2】:

    HTML

    <label for="name">Name of the candidate: </label><br>
    <input id="candidate-name" type="text" name="e_name" value="" onfocus="ViewType(this.value);">
    <br><br>
    <label for="division">Choose Division</label><br>
    <select name="e_division" id="selectbtn">
      <option>Select One</option>
      <option value="MECH">MECH</option>
      <option>CSE</option>
      <option>CE</option>
    </select>
    

    JS

    var candidate = document.getElementById("candidate-name");
    
    candidate.addEventListener("change", viewType);
    
    function viewType() {
      var select = document.getElementById("selectbtn");
      var op = select.getElementsByTagName("option");
    
      if(candidate.value == "Amit") {
        op[2].disabled = true;
        op[3].disabled = true;
      }
    }
    

    【讨论】:

    • 我也遇到了上面提到的同一个问题。我通过将 value="Amit" 放入第一个输入标记来测试此代码。这样才能运行您的解决方案。但它不起作用。
    • 代码肯定对我有用:jsfiddle.net/29up1ehm/2
    猜你喜欢
    • 1970-01-01
    • 2016-10-06
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2016-02-25
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多