添加和删​​除下拉选项框由用户输入确定

时间:2018-05-22 19:07:43

标签: javascript

以下是Enable/disable checkbox determind by users input

的问题

我的老板想要一个下拉列表,而不是一个复选框。 所以现在当用户输入他的联系电话时。如果联系电话号码以01开头,那么'通过短信发送更新'从下拉列表中删除。

我已经编写了一些代码来反映这一点,如果用户输入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语句中添加一些内容但不确定是什么。

由于

1 个答案:

答案 0 :(得分:1)

使用此脚本:

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);
 }
}