正如标题所说,我的代码适用于最新的Firefox和IE9,但不适用于IE8。谁能告诉我为什么?或者也许给我另一个解决方案来隐藏/显示基于所选元素的div。感谢
<script type="text/javascript">
<!--
/* Hide drop down if certain option selected */
function hideField(field_id){
var field = document.getElementById(field_id);
field.style.display = "none";
}
/* Show drop down if certain option selected */
function showField(field_id){
var field = document.getElementById(field_id);
if(field.style.display = "none"){
field.style.display = "block";
}
}
-->
</script>
<select name="subject" id="subject" >
<option value="unselected">Please Select...</option>
<option value="Advertising" onclick="hideField('browserRow'),hideField('versionRow')">Advertising</option>
<option value="Complaint" onclick="hideField('browserRow'),hideField('versionRow')">Complaint</option>
<option value="Content Issue" onclick="hideField('browserRow'),hideField('versionRow')">Content/Information</option>
<option value="Website Error" onclick="showField('browserRow'),showField('versionRow')">Website Bug/Error</option>
<option value="Website Feedback" onclick="hideField('browserRow'),hideField('versionRow')">Website Feedback</option>
<option value="Other" onclick="hideField('browserRow'),hideField('versionRow')">Other</option>
</select>
<div class="row" id="browserRow">
<label>Your Browser: <font color="#FF0000">*</font></label>
<select name="browser" id="browser">
<option value="unselected">Please Select...</option>
<option value="Android">Android</option>
<option value="Google Chrome">Google Chrome</option>
<option value="Mozilla Firefox">Mozilla Firefox</option>
<option value="Internet Explorer">Internet Explorer</option>
<option value="Safari">Safari</option>
<option value="Opera">Opera</option>
<option value="Other">Other</option>
</select>
</div>
<div class="row" id="versionRow">
<label>Browser Version: <font color="#FF0000">*</font></label>
<input type="text" name="version" value="<?php echo $session->userinfo['version']; ?>" maxlength="10" id="bVersion">
<span class="error"><?php echo $form->error("version"); ?></span>
<script language="javascript">
var number = document.getElementById('version');
selectItemByValue(number, '<?php echo $form->value('version'); ?>');
</script>
</div>
答案 0 :(得分:4)
答案 1 :(得分:2)
请尝试在此处使用分号而不是逗号:
onclick="hideField('browserRow');hideField('versionRow')"
答案 2 :(得分:0)
您遇到的一个大问题是showField
函数:
if(field.style.display = "none")
这行代码不正确。您在if()
中使用了一个等于而不是双等于,因此它将设置显示的值而不是检查值是什么。
这不是IE8问题的原因,但这是一个需要指出的严重错误。 (虽然纯粹的运气,在这种情况下可能不会给你造成任何问题)