问题描述
|
我正在使用asp.net mvc 2,在我的操作中,我默认情况下将属性设置为true,因此在代码中写入时将对其进行检查,即复选框。
这将生成以下代码
<input id=\"BookTalent_BookATalent\" class=\"bookTalent\" type=\"check@R_404_6277@\" value=\"true\" name=\"BookTalent.BookATalent\" checked=\"checked\">
现在我得到了第二个复选框“ filmPermit”,默认情况下未选中该复选框,现在它可以正常工作的方式是,如果两个复选框都被选中,则没有任何变化,但是如果这个“ filmPermit”复选框被自己选中,则它可以隐藏一个div
现在,当我没有在booktalent复选框上设置默认检查时,我得到的代码可以正常工作,例如,如果我选中filmpermit复选框,它将隐藏div,如果选中booktalent复选框,则不会隐藏它。但是当我在booktalent复选框上将默认设置为true \“ checked \”时,为什么它不起作用?
这是我的jQuery的检查
$(\'.filmPermit\').click(function () {
$(\'#filmPermit\').toggle(this.checked);
if (this.checked) {
if ($(\'.bookTalent\').is(\':checked\')) {
$(\'#lookingFor\').toggle(true);
} else {
$(\'#lookingFor\').toggle(false);
}
if ($(\'.quote\').is(\':checked\')) {
$(\'#lookingFor\').toggle(true);
} else {
$(\'#lookingFor\').toggle(false);
}
} else {
$(\'#lookingFor\').toggle(true);
}
}).triggerHandler(\'click\');
编辑:
这是我用于标记的代码
<%: Html.Check@R_404_6277@For(model => model.BookTalent.BookATalent,new { @class = \"bookTalent\"}) %><label>Book A Talent</label>
<%: Html.Check@R_404_6277@For(model => model.BookTalent.Quote,new { @class = \"quote\"}) %><label>Get Quote</label>
<%: Html.Check@R_404_6277@For(model => model.BookTalent.FilmPermit,new { @class = \"filmPermit\" }) %><label>Film Permit</label>
解决方法
该代码的结构方式与
.bookTalent
的状态完全无关。选中.bookTalent
之后,您立即具有以下内容:
if ($(\'.quote\').is(\':checked\')) {
$(\'#lookingFor\').toggle(true);
} else {
$(\'#lookingFor\').toggle(false);
}
它覆盖了对ѭ3的检查结果。我无法告诉您如何解决它,因为您未对ѭ7的功能进行任何说明。
, 这是我的工作理论。
您正在检查$(\".bookTalent\").is(\':checked\')
而不是$(\"#BookTalent_BookATalent\").is(\':checked\')
在类上选择可能返回多个项目,.is()命令将返回是否选中任何选定项目。
尝试使用更精确的格式,看看是否有所不同。
顺便说一句:$(\'.quote\').is(\':checked\')
也有同样的问题