如果选中复选框,则JavaScript无效

时间:2013-04-23 01:53:35

标签: javascript jquery forms checkbox required

我有一个网站表单,我只有在选中复选框时才需要使用我想要的字段(使用JQuery插件)。

到目前为止,我编写了JavaScript,如果未选中或选中复选框,则可以使用。但是当用户检查复选框然后取消选中它时代码不起作用(取消选中时字段仍然是必需的)。

另外一个错误是由于某种原因,这个相同的代码仅适用于更新一个必需的项目布尔值。例如,如果我有相同的代码,但为了使两个元素要求更新,则脚本根本不起作用。

以下是相关的源代码:

<script>
function swap(){
  if(document.getElementById('must').checked){     
    document.getElementById("element1").setAttribute("required", "true");
  }else{      
    document.getElementById("element1").setAttribute("required", "false");
  }
}
</script>


<form>
<input type="checkbox" onclick="swap();" id="must" name="must" value="1" style="width:10;">
<input id="element1" type="text" name="element1" placeholder="Enter Value" >
<input type="submit" id="submit" name="submit" value="Send" >
</form>     

非常感谢任何协助。

3 个答案:

答案 0 :(得分:2)

我知道最好的方法是检查checkboxchecked,还是使用jQuery is()方法(documentation)。它为您处理x浏览器差异。将属性添加到HTML元素的最佳方法是使用attr()方法。

if($("#must").is(":checked")) {
    $("#element1").attr('required', 'required');
} else {
    $("#element1").removeAttr();
}

您可以在DOM检查器中检查该属性是否已添加。

必需的属性文档为here

答案 1 :(得分:1)

试试这个,在xhtml中我们指定required =“required”并且没有required =“false”,更好的方法是删除else上需要的属性

<script type="text/javascript">
   function swap(){
  if(document.getElementById('must').checked){     
    document.getElementById("element1").setAttribute("required", "required");
  }else{      
    document.getElementById("element1").removeAttribute("required");
  }
}
    </script>

答案 2 :(得分:0)

必需属性是布尔属性,它的存在意味着该字段是必需的,而它的缺失意味着该字段不是必需的。它只有3个有效表单1. required单独2. required=""等于空字符串3. required="required"