Htmlshot:http://fallenhero.mysteria.cz/Leetleaflet.htm
场景:当我检查“Polozka 1”,然后选择“Pulena”并取消选中“Polozka 1”时,一切正常。但是,在完成上述过程后,我查看“Polozka 2”时,突然出现“Polozka 1盒”。 “Polozka 1 Box”的启示有限于检查“Polozka 1”,而不是“Polozka 2”。
任何人都可以解释这种奇怪的行为吗?
事件处理程序的代码:
$('#frmletakForm-polozka1').on("click", function(){
var pulena1Box = $("#pulena1Box");
var radioPulena1 = $("#frmletakForm-typpolozky1-1");
if(!$(this).is(":checked") && radioPulena1.is(":checked")) {
pulena1Box.toggle();
}
});
$('#frmletakForm-polozka2').on("click", function(){
var pulena2Box = $("#pulena2Box");
var radioPulena2 = $("#frmletakForm-typpolozky2-1");
if(!$(this).is(":checked") && radioPulena2.is(":checked")) {
pulena2Box.toggle();
}
});
提前感谢您的帮助。
答案 0 :(得分:1)
你最好做类似的事情,然后你不必为每个复选框重复所有的1,2,3,4号码,并且代码更少。
$('[id^="frmletakForm-polozka"]').on("click", function(){
var num = this.id.replace(/[^0-9]/g, "");
var pulenaBox = $("#pulena" + num + "Box");
var radioPulena = $("#frmletakForm-typpolozky" + num + "-1");
if(!$(this).is(":checked") && radioPulena.is(":checked")) {
pulenaBox.toggle();
}
});
我也从您的网页上收到了这些错误:
Uncaught TypeError: Cannot read property 'id' of undefined Leetleaflet.htm:1446
Uncaught TypeError: Cannot read property 'id' of undefined saved_resource.htm:735
5Unable to post message to http://googleads.g.doubleclick.net. Recipient has origin http://fallenhero.mysteria.cz.
答案 1 :(得分:0)
使用nette.toggle
例如代码
visible = true; val = nette.getValue(form["typpolozky1"]); res = (val=="p"); visible = visible && res;
nette.toggle("pulena1Box", visible);
仅检查选择列表的值,而不检查封闭容器是否可见。
由于整个函数都针对所有辅助项运行 - 如果选中它们正在检查的项目,每次表单发生变化时都会显示它们。