在表单设计器里面设计好的html 语言 在页面展示和操作时 遇到的问题很奇葩
大家都知道 用fckeditor表单设计好了保存到数据库是html语言 ,在前台页面展示表格。
<TABLE border=0 name="201647324143">
<TBODY>
<TR>
<TD bgColor=#ffffff><INPUT id=201647324143_0 value=正确 CHECKED type=radio name=201647324143>正确</TD>
<TD bgColor=#ffffff><INPUT id=201647324143_0 value=错误 type=radio name=201647324143>错误</TD>
</TR>
</TBODY>
</TABLE>
这里我们在网页上面点击radio 它自己会把 CHECKED 加载控件上。
在IE8 文本模式杂项模式下面 选中 它会自动把HTML 页面修改成<INPUT id=201647324143_0 value=正确 CHECKED type=radio name=201647324143>正确</TD>
但是在IE8 文本模式下IE8标准 选中 它不会把CHECKED 加上去 它显示的<INPUT id=201647324143_0 value=正确 type=radio name=201647324143>正确</TD> 这种
这样我们在保存表单数据时 它就会获取不到这个CHECKED 属性 你在次打开这个页面 就会发现没有选中这个radio控件
如果把浏览器改成 “文本模式杂项模式” 其他页面样式会发生变化 这个方案不得行, 那我们只有通过自己些一些脚本来解决这个问题
先在表单设计上面给这个控件上面加一个 οnclick="onradio(this)" 这个事件
在把全局引用的js里面写onradio方法
function onradio(obj) { $("input[type='radio']").attr("checked", false);//清除所有的checked $(obj).attr("checked", true);//选中自己 }
这样避免在IE8 文本模式下IE8标准 radio 选中但是CHECKED 没有清除掉问题