Javascript 选中复选框后的必填字段
我有一个带有复选框的表单,一旦单击它,就会打开复选框的子列表 例如,如果您在复选框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; }; }; 证据质量一 抗菌预防 头孢唑林 万古霉素 庆大霉素 另外 皮肤准备 水/醇基 另外 外科手消毒 肠外营养时机 根据您的评论:Javascript 选中复选框后的必填字段,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有复选框的表单,一旦单击它,就会打开复选框的子列表 例如,如果您在复选框AntimicrobioalProphylaxis上选择…它会删除一个包含4个其他选项的复选框子列表。如何使子列表成为必需的 $document.readyfunction{ $AntimicrobioalProphylaxis.changefunction{ var showOrHide=$this.is':选中'; $AntimicrobioalProphylaxisSub.toggleshowOrHide;
如果您检查了抗菌药物,您还必须至少检查 提交表单所需的其他字段之一 以下是如何使用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元素一样,上面的代码也可以工作。