在Javascript中我逻辑上遇到了问题。第二个功能取消上述功能。我该怎么解决?
OBS:我无法移动'html'并使用'onclick'
$(document).ready(function(){
$("input[name='wpcf-pde']").change(function() {
if($(this).is(':checked')) {
$("input[name='wpcf-pnps']").prop("disabled", "true");
$("input[name='wpcf-pspitlp']").prop("disabled", "true");
$("input[name='wpcf-ppp']").prop("disabled", "true");
$("input[name='wpcf-pto']").prop("disabled", "true");
$("input[name='wpcf-pto2']").prop("disabled", "true");
$("input[name='wpcf-pppa']").prop("disabled", "true");
$("input[name='wpcf-ptl']").prop("disabled", "true");
$("input[name='wpcf-ptpte']").prop("disabled", "true");
$("input[name='wpcf-ptpti']").prop("disabled", "true");
$("input[name='wpcf-ptc']").prop("disabled", "true");
$("input[name='wpcf-psnl']").prop("disabled", "true");
$("input[name='wpcf-pcc']").prop("disabled", "true");
} else {
$("input[name='wpcf-pnps']").removeProp("disabled");
$("input[name='wpcf-pspitlp']").removeProp("disabled");
$("input[name='wpcf-ppp']").removeProp("disabled");
$("input[name='wpcf-pto']").removeProp("disabled");
$("input[name='wpcf-pto2']").removeProp("disabled");
$("input[name='wpcf-pppa']").removeProp("disabled");
$("input[name='wpcf-ptl']").removeProp("disabled");
$("input[name='wpcf-ptpte']").removeProp("disabled");
$("input[name='wpcf-ptpti']").removeProp("disabled");
$("input[name='wpcf-ptc']").removeProp("disabled");
$("input[name='wpcf-psnl']").removeProp("disabled");
$("input[name='wpcf-pcc']").removeProp("disabled");
}
}).change();
$("input[name='wpcf-pspitlp']").change(function() {
if(this.checked) {
$("input[name='wpcf-pde']").prop("disabled", "true");
$("input[name='wpcf-pnps']").prop("disabled", "true");
$("input[name='wpcf-ppp']").prop("disabled", "true");
$("input[name='wpcf-pto']").prop("disabled", "true");
$("input[name='wpcf-pto2']").prop("disabled", "true");
$("input[name='wpcf-pppa']").prop("disabled", "true");
$("input[name='wpcf-ptl']").prop("disabled", "true");
$("input[name='wpcf-ptpte']").prop("disabled", "true");
$("input[name='wpcf-ptpti']").prop("disabled", "true");
$("input[name='wpcf-ptc']").prop("disabled", "true");
$("input[name='wpcf-psnl']").prop("disabled", "true");
$("input[name='wpcf-pcc']").prop("disabled", "true");
} else {
$("input[name='wpcf-pde']").removeProp("disabled");
$("input[name='wpcf-pnps']").removeProp("disabled");
$("input[name='wpcf-pspitlp']").removeProp("disabled");
$("input[name='wpcf-ppp']").removeProp("disabled");
$("input[name='wpcf-pto']").removeProp("disabled");
$("input[name='wpcf-pto2']").removeProp("disabled");
$("input[name='wpcf-pppa']").removeProp("disabled");
$("input[name='wpcf-ptl']").removeProp("disabled");
$("input[name='wpcf-ptpte']").removeProp("disabled");
$("input[name='wpcf-ptpti']").removeProp("disabled");
$("input[name='wpcf-ptc']").removeProp("disabled");
$("input[name='wpcf-psnl']").removeProp("disabled");
$("input[name='wpcf-pcc']").removeProp("disabled");
}
}).change();
});
HTML
<body>
<div class="cred-field cred-field-pcb">
<div class="cred-label">Pesquisas cadastradas</div>
<input name="wpcf-pcb" id="pcb_Pesquisas_cadastradas" value="Pesquisas cadastradas" class="myzebra-prime-name-wpcf-pcb" type="checkbox" >
</div>
<div class="cred-field cred-field-pde">
<div class="cred-label">Pesquisas descontinuadas</div>
<input name="wpcf-pde" id="pde_Pesquisas_descontinuadas" value="Pesquisas descontinuadas" class="myzebra-prime-name-wpcf-pde" type="checkbox" checked >
</div>
<div class="cred-field cred-field-pnps">
<div class="cred-label">Pesquisas não patenteáveis/sigilosas</div>
<input name="wpcf-pnps" id="pnps_Pesquisas_não_patenteáveis-sigilosas" value="Pesquisas não patenteáveis-sigilosas" class="myzebra-prime-name-wpcf-pnps" type="checkbox">
</div>
<div class="cred-field cred-field-pspitlp">
<div class="cred-label">Pesquisas sem potencial de inovação tecnológica, liberadas para publicação</div>
<input name="wpcf-pspitlp" id="pspitlp_Pesquisas_sem_potencial_de_inovação_tecnológica,_liberadas_para_publicação" value="Pesquisas sem potencial de inovação tecnológica, liberadas para publicação" class="myzebra-prime-name-wpcf-pspitlp" type="checkbox">
</div>
<div class="cred-field cred-field-ppp">
<div class="cred-label">Pesquisas com pedido de patente</div>
<input name="wpcf-ppp" id="ppp_Pesquisas_com_pedido_de_patente" value="Pesquisas com pedido de patente" class="myzebra-prime-name-wpcf-ppp" type="checkbox">
</div>
<div class="cred-field cred-field-pto">
<div class="cred-label">Pesquisas com tecnologia em oferta</div>
<input name="wpcf-pto" id="pto_Pesquisas_com_tecnologia_em_oferta" value="Pesquisas com tecnologia em oferta" class="myzebra-prime-name-wpcf-pto" type="checkbox">
</div>
<div class="cred-field cred-field-pto2">
<div class="cred-label">Pesquisa com tecnologia em oferta pela 2ª vez</div>
<input name="wpcf-pto2" id="pto2_Pesquisa_com_tecnologia_em_oferta_pela_2ª_vez" value="Pesquisa com tecnologia em oferta pela 2ª vez" class="myzebra-prime-name-wpcf-pto2" type="checkbox">
</div>
<div class="cred-field cred-field-pppa">
<div class="cred-label">Pesquisas com pedido de patente abandonado</div>
<input name="wpcf-pppa" id="pppa_Pesquisas_com_pedido_de_patente_abandonado" value="Pesquisas com pedido de patente abandonado" class="myzebra-prime-name-wpcf-pppa" type="checkbox">
</div>
<div class="cred-field cred-field-ptl">
<div class="cred-label">Pesquisas com tecnologia licenciada</div>
<input name="wpcf-ptl" id="ptl_Pesquisas_com_tecnologia_licenciada" value="Pesquisas com tecnologia licenciada" class="myzebra-prime-name-wpcf-ptl" type="checkbox">
</div>
<div class="cred-field cred-field-ptpte">
<div class="cred-label">Pesquisas com titularidade de patente transferida para empresa</div>
<input name="wpcf-ptpte" id="ptpte_Pesquisas_com_titularidade_de_patente_transferida_para_empresa" value="Pesquisas com titularidade de patente transferida para empresa" class="myzebra-prime-name-wpcf-ptpte" type="checkbox">
</div>
<div class="cred-field cred-field-ptpti">
<div class="cred-label">Pesquisas com titularidade de patente transferida para inventor</div>
<input name="wpcf-ptpti" id="ptpti_Pesquisas_com_titularidade_de_patente_transferida_para_inventor" value="Pesquisas com titularidade de patente transferida para inventor" class="myzebra-prime-name-wpcf-ptpti" type="checkbox">
</div>
<div class="cred-field cred-field-ptc">
<div class="cred-label">Pesquisas com tecnologia cedida</div>
<input name="wpcf-ptc" id="ptc_Pesquisas_com_tecnologia_cedida" value="Pesquisas com tecnologia cedida" class="myzebra-prime-name-wpcf-ptc" type="checkbox">
</div>
<div class="cred-field cred-field-psnl">
<div class="cred-label">Pesquisas com segredo de negócio licenciado</div>
<input name="wpcf-psnl" id="psnl_Pesquisas_com_segredo_de_negócio_licenciado" value="Pesquisas com segredo de negócio licenciado" class="myzebra-prime-name-wpcf-psnl" type="checkbox">
</div>
<div class="cred-field cred-field-pcc">
<div class="cred-label">Pesquisas com contrato cancelado</div>
<input name="wpcf-pcc" id="pcc_Pesquisas_com_contrato_cancelado" value="Pesquisas com contrato cancelado" class="myzebra-prime-name-wpcf-pcc" type="checkbox">
</div>
<div class="cred-field cred-field-pe">
<div class="cred-label">Processos encerrados</div>
<input name="wpcf-pe" id="pe_Processos_encerrados" value="Processos encerrados" class="myzebra-prime-name-wpcf-pe" type="checkbox">
</div>
谢谢!
答案 0 :(得分:2)
部分问题在于您最初不应触发pspitlp
逻辑。另外,你使用的是prop而不是attr。此外,所有这些逻辑都可以简化:
$(document).ready(function(){
$("input[name='wpcf-pde']").change(function() {
$("input[name^='wpcf']").not("[name=wpcf-pcb],[name=wpcf-pde]").attr("disabled", $(this).is(':checked'));
}).change();
$("input[name='wpcf-pspitlp']").change(function() {
$("input[name^='wpcf']").not("[name=wpcf-pcb],[name=wpcf-pspitlp]").attr("disabled", $(this).is(':checked'));
});
});
答案 1 :(得分:0)
如果要禁用(或取消选中)除当前选中的所有复选框,则可以使用此算法:
$(document).ready(function () {
var inputs = $("div.cred-field input[name^=wpcf]").filter(function () {
return !(this.name == 'wpcf-pcb' || this.name == 'wpcf-pe'); //skip these two
});
inputs.change(function () {
var c = this.checked;
inputs.each(function () {
this.checked = false; // to clear all other checkboxes
this.disabled = c; // to disable or enable all other checkboxes
});
this.checked = c;
this.disabled = false;
});
});