【发布时间】:2015-01-14 14:39:28
【问题描述】:
我有一个需要一些条件表单处理的表单。例如,当用户选择“是的,他们正在申请住房”时,我想启用一些表单元素并将字体颜色从灰色更改为黑色。在视觉上,我希望整个表单看起来被禁用,直到用户选择“是”。
现在我遇到的麻烦是,我有一个 jquery,它可以通过单击将类从灰色类更改为黑色或普通类。我能够为以下一个以外的多个表单部分实现此功能。它适用于chrome,但不适用于IE,我验证了我的html,但没有解决它。我已尽我所能解决此问题,但找不到问题。
这里是步骤或查看小提琴http://jsfiddle.net/vq1b1par/5/:
创建 css 以使元素变灰
div.row.grey_me_homeless, div.col-lg-12.grey_me_homless p span, p.form_legend.grey_me_homeless span{
color:grey !important;
}
jquery 禁用部分中的所有表单元素
$("div.col-lg-12.grey_me_homeless label :input, div.col-lg-12.grey_me_homeless textarea, .grey_me_homeless div :input, div.col-lg-12.grey_me_homeless").each(function(){
$(this).prop('disabled', true);
});
点击时,将禁用的元素更改为启用并删除 css 类
$('#emergency_yes').click(function () {
$("div.row.grey_me_homeless").removeClass().addClass("row contact_form color_font_homeless");
$("div.col-lg-12.grey_me_homeless").removeClass().addClass("col-lg-12 color_font_homeless");
$("p.form_legend.grey_me_homeless").removeClass().addClass("form_legend color_font_homeless");
$("div.col-lg-12.color_font_homeless label :input, div.col-lg-12.color_font_homeless textarea, .color_font_homeless div :input").each(function(){
$(this).prop('disabled', false);
})
})
【问题讨论】:
-
试试
$('#emergency_yes').change(function () -
可能是因为 jQuery 更喜欢选择器比已知宇宙中的像素数更短!
-
@Roamer-1888 我认为标识符不是问题,因为它在 chrome 中工作,而且我在表单中的几个部分有相同的命名约定,它们都在 IE 9 中工作
-
@Benjamin 当我更新 jfiddle 以使用“更改”方法时它在 IE 9 中不起作用
标签: jquery css forms jquery-ui