首页 > 解决方案 > 启用/禁用由用户输入决定的复选框

问题描述

我有一个简单的表格,用户可以在其中输入他的联系电话。如果联系电话以 07 开头,则启用该复选框,否则我需要禁用它。

我已经编写了一些代码,但我面临的问题是当用户键入 01 时,它会被禁用,但如果他们在 01 之后继续添加任何其他数字,则复选框将启用。

function deselectcheckbox(wildvalue) {
  if (document.getElementById("1").value == "01") {
   $("#checkbox").attr("disabled", true);
   document.getElementById("divText").innerHTML = "Not able to send";
  }
  else
   {
   $("#checkbox").attr("disabled", false);
   document.getElementById("divText").innerHTML = "Send text";
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
<tr>
 <td>Contact Number</td>
 <td><input type="text" id="1" name="1" onkeyup="deselectcheckbox(this.value)"></td>
</tr>
<tr>
 <td><label><div id="divText">Send text</div></label></td>
 <td><input type="checkbox" name="contact" id="checkbox" value=""></td>
</tr>
</table>

我尝试添加通配符

(document.getElementById("1").value == "01*")

但它不起作用,请帮助

标签: javascript

解决方案


如果您只想在内容以“07”开头时启用复选框,您可以先检查该复选框并在 else 块内禁用。

  if (document.getElementById("1").value.startsWith("07")) {
    $("#checkbox").attr("disabled", false);
    document.getElementById("divText").innerHTML = "Send text";
  }
  else
  {
    $("#checkbox").attr("disabled", true);
    document.getElementById("divText").innerHTML = "Not able to send";
  }

推荐阅读