如果选中此复选框,则JavaScript不起作用

如果选中此复选框,则JavaScript不起作用,javascript,jquery,forms,checkbox,required,Javascript,Jquery,Forms,Checkbox,Required,我有一个网站表单,只有在选中复选框的情况下,我才有需要的字段(使用JQuery插件) 到目前为止,我编写的JavaScript在复选框未选中或未选中的情况下工作。但当用户选中该复选框,然后取消选中时,代码将不起作用(未选中时,该字段仍然是必需的) 另外一个bug是由于某些原因,这段代码只适用于更新所需的一个项目。例如,如果我有相同的代码,但是更新了两个元素的需求,那么脚本根本不起作用 以下是相关的源代码: <script> function swap(){ if(document

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

到目前为止,我编写的JavaScript在复选框未选中或未选中的情况下工作。但当用户选中该复选框,然后取消选中时,代码将不起作用(未选中时,该字段仍然是必需的)

另外一个bug是由于某些原因,这段代码只适用于更新所需的一个项目。例如,如果我有相同的代码,但是更新了两个元素的需求,那么脚本根本不起作用

以下是相关的源代码:

<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>     

函数交换(){
如果(document.getElementById('must').checked){
document.getElementById(“element1”).setAttribute(“必需的”、“真实的”);
}否则{
document.getElementById(“element1”).setAttribute(“必需的”、“错误的”);
}
}

任何帮助都将不胜感激。

我所知道的检查
复选框是否已选中
的最佳方法是使用jQuery
is()
方法()。它为您处理x浏览器的差异。向HTML元素添加属性的最好方法是使用
attr()
方法

if($("#must").is(":checked")) {
    $("#element1").attr('required', 'required');
} else {
    $("#element1").removeAttr();
}
您可以在DOM检查器中签入已添加的属性


所需的属性文档是。

我知道的检查
复选框是否选中
的最佳方法是使用jQuery
is()
方法()。它为您处理x浏览器的差异。向HTML元素添加属性的最好方法是使用
attr()
方法

if($("#must").is(":checked")) {
    $("#element1").attr('required', 'required');
} else {
    $("#element1").removeAttr();
}
您可以在DOM检查器中签入已添加的属性


必需的属性文档是。

必需的属性是布尔属性,它的存在表示该字段是必需的,它的不存在表示该字段不是必需的。它只有3张有效表格1<代码>必需的
本身2
required=”“
等于空字符串3
required=“required”

所需属性是一个布尔属性,它的存在表示该字段是必需的,它的缺失表示该字段不是必需的。它只有3张有效表格1<代码>必需的
本身2
required=”“
等于空字符串3
required=“required”

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

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

函数交换(){
如果(document.getElementById('must').checked){
document.getElementById(“element1”).setAttribute(“必需”、“必需”);
}否则{
document.getElementById(“element1”)。删除属性(“必需”);
}
}

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

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

函数交换(){
如果(document.getElementById('must').checked){
document.getElementById(“element1”).setAttribute(“必需”、“必需”);
}否则{
document.getElementById(“element1”)。删除属性(“必需”);
}
}

我试过了,但得到了同样的结果;可能是因为required=“false”没有真正使元素成为必需的。如果我没有记错的话,过去我在元素上添加required=“false”时,它仍然是必需的。@卡洛斯的问题不是他检查它是否被选中的方法。我刚刚注意到了问题所在,但是@DevonBernard更快;)@卡洛斯:不管怎样,我感谢你的帮助。我认为必需的属性必须设置为true才能工作,但显然我错了,我将确保下次出现类似错误时,查看是否需要删除该属性。再次感谢+1。我试过了,但得到了同样的结果;可能是因为required=“false”没有真正使元素成为必需的。如果我没有记错的话,过去我在元素上添加required=“false”时,它仍然是必需的。@卡洛斯的问题不是他检查它是否被选中的方法。我刚刚注意到了问题所在,但是@DevonBernard更快;)@卡洛斯:不管怎样,我感谢你的帮助。我认为必需的属性必须设置为true才能工作,但显然我错了,我将确保下次出现类似错误时,查看是否需要删除该属性。再次感谢1.这很有效,非常感谢!显然,将必需属性设置为另一个值不起作用,您是对的,我必须删除该元素属性。再次感谢!成功了,非常感谢!显然,将必需属性设置为另一个值不起作用,您是对的,我必须删除该元素属性。再次感谢!