一旦用户开始在文本字段中输入,您如何选中复选框?如果javascript / html中的textfield为空,也取消选中该复选框

时间:2013-07-29 21:58:26

标签: javascript html grails

所以我有一些代码可以在用户开始在文本字段中输入后检查复选框,但如果用户决定删除他或她开始输入的所有内容并将文本字段留空,则无法取消选中。有帮助吗?谢谢!

<html>
<head> 
 <script type="text/javascript">
    function checkvalue(val)
    {
        if(val.value == '')
            document.getElementById('productCB').checked="false"
        else
            document.getElementById('productCB').checked="true"
    }
 </script>
</head>
<body>
  <g:checkBox id="productCB" value="searchProduct" /> Product:
  <g:textField id="productID" placeholder="Enter product here..." onkeypress="checkvalue(this)" />
</body>
</html>

1 个答案:

答案 0 :(得分:2)

falsetrue是布尔值,而不是字符串,因此只检查与零相比较的值长度将得到相同的结果,即布尔值。

您还应该使用onkeyup事件:

<html>
<head> 
 <script type="text/javascript">
    function checkvalue(val) {
        document.getElementById('productCB').checked = val.value.trim().length > 0;
    }
 </script>
</head>
<body>
  <input type="checkBox" id="productCB" value="searchProduct" /> Product:
  <input type="text" id="productID" placeholder="Enter product here..." onkeyup="checkvalue(this)" />
</body>
</html>

FIDDLE