单击Checkbox后,表单字段是否必需?

时间:2014-12-28 03:14:27

标签: javascript html checkbox custom-fields required

我正在使用一个复选框,它会在单击复选框时显示/隐藏字段。只有当我点击复选框并显示字段时,我才想让我的字段输入信息。隐藏字段并且未单击复选框时,则不需要这些字段来输入信息。我该如何实现这一目标。这是我正在使用的代码;

<script type="text/javascript" language="JavaScript">
function HidePart(d) { 
document.getElementById(d).style.display = "none";
}
function ShowPart(d) { 
document.getElementById(d).style.display = "block"; 
}
function CheckboxChecked(b,d)
{
if(b) {
ShowPart(d); 
}
else  { 
HidePart(d); 
}
}
</script>


  <input type="checkbox" name="Loan2" value="yes" onclick="CheckboxChecked(this.checked,'checkboxdiv2')"> Add New Loan


<div id="checkboxdiv2" style="display:none">
Form Fields for input information
</div> 

如果这有帮助,这是我的网站:https://www.slfpusa.org/testing-page/。当我点击“添加新贷款”时,它会生成更多我希望在显示后才需要的字段。我希望我的问题很明确,我希望能够帮助我调整这个javascript代码,使其能够运行我需要的功能。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

将表单验证代码放入额外的if语句中。尝试这样的事情:

if (document.loan2.checked) {
  // validate the input
} else {
  return false;
}

答案 1 :(得分:0)

我试图让你尽可能清楚。只需阅读评论,一切都应该好。

<html>
<head>
  <!--Add this JQuery library to make this a whole lot easier for you-->
  <!--This library provides a more effecient way of writing javascript-->
   <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
</head>

<body>
  <form>
  <input id ="checkboxId" type ="checkbox">Add new Loan</input><br>

    <label style="display:none">Enter value:</label>
    <input id="textboxId" style="display:none" type ="text"/>
  <button style="display:none" type ="submit">Click Me</button>
</form>

<script>

//In between your script tags add the following JQuery code

//This will check if the check box is clicked
$('#checkboxId').click(function () {

  //if checkbox is clicked then make the textbox required
  if ($('#checkboxId').prop('checked'))
  {
    $("#textboxId").prop('required',true);
        $("#textboxId").slideDown();
        $("label").slideDown();
        $("button").slideDown();
  } else {
    //else do not make the textbox required
    $("#textboxId").prop('required',false);
      $("#textboxId").slideUp();
      $("label").slideUp();
      $("button").slideUp();
  }

});
</script>
</body>
</html>

如果您有任何疑问,请与我们联系。希望这会有所帮助