我有一个网站表单,我只有在选中复选框时才需要使用我想要的字段(使用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>
非常感谢任何协助。
答案 0 :(得分:2)
我知道最好的方法是检查checkbox
是checked
,还是使用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"