Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中复选框后的必填字段_Javascript_Jquery_Html - Fatal编程技术网

Javascript 选中复选框后的必填字段

Javascript 选中复选框后的必填字段,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有复选框的表单,一旦单击它,就会打开复选框的子列表 例如,如果您在复选框AntimicrobioalProphylaxis上选择…它会删除一个包含4个其他选项的复选框子列表。如何使子列表成为必需的 $document.readyfunction{ $AntimicrobioalProphylaxis.changefunction{ var showOrHide=$this.is':选中'; $AntimicrobioalProphylaxisSub.toggleshowOrHide;

我有一个带有复选框的表单,一旦单击它,就会打开复选框的子列表

例如,如果您在复选框AntimicrobioalProphylaxis上选择…它会删除一个包含4个其他选项的复选框子列表。如何使子列表成为必需的

$document.readyfunction{ $AntimicrobioalProphylaxis.changefunction{ var showOrHide=$this.is':选中'; $AntimicrobioalProphylaxisSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; $SkinPreparation.changefunction{ var showOrHide=$this.is':选中'; $SkinPreparationSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; $hairremove.changefunction{ var showOrHide=$this.is':选中'; $HairRemovalSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; $AutologousSPlatelectrichPlasmaApplication.changefunction{ var showOrHide=$this.is':选中'; $AutologousSplaterichPlasmaApplicationSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; }; 证据质量一 抗菌预防 头孢唑林 万古霉素 庆大霉素 另外 皮肤准备 水/醇基 另外 外科手消毒 肠外营养时机 根据您的评论:


如果您检查了抗菌药物,您还必须至少检查 提交表单所需的其他字段之一

以下是如何使用jQuery验证表单字段:

$document.readyfunction{ $form-submit.clickfunctionevent{ var错误=错误; 如果$'AntimicrobioalProphylaxis'.is':checked'&&&$'AntimicrobioalProphylaxis子输入:checked'.length==0 error=true; 如果$'SkinPreparation'.is':checked'&&$'SkinPreparationSub输入:checked'.length==0 error=true; 如果错误{ 违约事件; 警告“错误!请检查您的表单!”; }否则警告“无错误!将提交表单。”; }; $AntimicrobioalProphylaxis.changefunction{ var showOrHide=$this.is':选中'; $AntimicrobioalProphylaxisSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; $SkinPreparation.changefunction{ var showOrHide=$this.is':选中'; $SkinPreparationSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; $hairremove.changefunction{ var showOrHide=$this.is':选中'; $HairRemovalSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; $AutologousSPlatelectrichPlasmaApplication.changefunction{ var showOrHide=$this.is':选中'; $AutologousSplaterichPlasmaApplicationSub.toggleshowOrHide; $'[name=description]'.toggleClass'required',showOrHide; }; }; 证据质量一 抗菌预防 头孢唑林 万古霉素 庆大霉素 另外 皮肤准备 水/醇基 另外 外科手消毒 肠外营养时机 提交
您希望确保至少选中一个项目,但可能需要多个项目,以确保在提交表单之前为每个组选中一个项目。选中一个复选框后,您需要从其他复选框中删除必需的属性,否则提交表单时都需要这些属性

您可以尝试以下方法:

  $("#AntimicrobialProphylaxis").change(function () {
      var $this = $(this);
      var showOrHide = $this.is(":checked");
      $("#" + this.id + "Sub").toggle(showOrHide);

      var requiredChecks = $("[data-toggle-target=" + this.id + "]").children("[type=checkbox]").prop('checked', false);

      requiredChecks.attr('required', showOrHide).click(function () {

          if ($('[name=' + this.name + ']:checked').length == 0) {
              $('[name=' + this.name + ']').attr('required ', true);
          } else {
              $('[name=' + this.name + ']').attr('required', false);
          }

      });
  });

如果您检查了抗菌药物,您还必须至少检查 提交表单所需的其他字段之一

根据您的需要,我认为您应该编写如下函数来验证您的输入:

function isValidated() {
    var isValid = true;
    var isChecked = $("#AntimicrobialProphylaxis").is(":checked");
    if (isChecked) {
        isValid = false;
        var isSubChecked = $('#AntimicrobialProphylaxisSub > input:checked').length > 0;
        if (isSubChecked) {
            isValid = true;
        }
    }
    return isValid;
}

如果用户选中了抗菌药物,则上述函数强制用户选中子列表中的至少1个复选框。查看完整的代码。

您是否尝试过编写自己的javascript来强制用户检查其中一个?这个想法是,如果选中了Antimicrobiolprophylaxis,则必须选中Antimicrobiolprophylaxis Sub中的至少一个复选框。这就是我的想法…sry for mess“code”$antimicrobiolprophylaxis.changefunction{if$this.is':选中“{$.Other | | |万古霉素|庆大霉素| | Other.attr“required”}else”{$.Other | | |万古霉素| | | |庆大霉素| | | Other.removeAttr'required'};您预期的行为是什么?您将子列表设为必填项,然后?如果用户不检查子列表,您不想提交表单?如果您检查了抗菌素过敏性,您还必须检查至少一个其他字段,以便提交我心目中的表单,但必填字段没有出现,我可以通过传递它。你知道如何解决这个问题吗?不清楚你在问什么。如果你想在复选框中添加所需的属性 与textarea元素一样,上面的代码也可以工作。