这是来自Enable/disable checkbox determind by users input的有问题的关注者

我的老板希望有一个下拉列表,而不是复选框。
所以现在当用户输入他的联系电话时。如果联系电话以01开头,则将从下拉列表中删除“通过SMS发送更新”。

我已经编写了一些代码来反映这一点,如果用户输入01,它将把SMS从列表中删除,但是如果他将其更改为07,则SMS不会返回列表。我尝试将select.add添加到else中,但这无法正常工作。

function deselectcheckbox(wildvalue) {
 if (document.getElementById("tel_num").value.startsWith("01")) {
  var select=document.getElementById('send_updates');
   for (i=0;i<select.length;  i++) {
   if (select.options[i].value=='SMS') {
    select.remove(i);
   }
  }
 }
 else
 {
  SOMETHING IN HERE TO CHECK TO SEE IF SMS IS MISSING AND TO ADD IT IF IT IS
 }
}


的HTML:

<table>
<tr>
 <td>Contact Number</td>
 <td>
 <input type="text" name="tel_num" id="tel_num" value="" onkeyup="deselectcheckbox(this.value)"></td>
</tr>
<tr>
 <td>
  <select name="send_updates" id="send_updates" required>
   <option value="" selected>Please Select....</option>
   <option value="SMS">Send updates by SMS</option>
   <option value="Email">Send updates by Email</option>
  </select>
 </td>
</tr>
</table>


我知道我需要在else语句中添加一些内容,但不确定是什么。

谢谢

最佳答案

使用此脚本:

var opt;
function deselectcheckbox(wildvalue) {
var select=document.getElementById('send_updates');
 if (document.getElementById("tel_num").value.startsWith("01")) {
   for (i=0;i<select.length;  i++) {
   if (select.options[i].value=='SMS') {
    opt=select.options[i];
    select.remove(i);
   }
  }
 }
 else
 {
    select.append(opt);
 }
}

关于javascript - 由用户输入确定的从下拉选项框中添加和删除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50474852/

10-11 12:59
查看更多