簡體   English   中英

JavaScript可在FF + IE9中運行,但不能在IE8中運行

[英]Javascript Working in FF + IE9 but not IE8

如標題所示,我的代碼可在最新的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>

IE不支持<option> onclick

解決方法是在<select>上使用onchange

有關詳細說明,請參見IE捕獲選項元素onclick

在這里嘗試使用分號而不是逗號:

onclick="hideField('browserRow');hideField('versionRow')"

您在這里遇到的一個大問題是在showField函數中:

if(field.style.display = "none")

這行代碼不正確。 您已經在if()使用了一個等於,而不是使用了雙重等於,因此它將設置顯示屬性的值,而不是檢查該值是什么。

這不是您的IE8問題的原因,但這是一個嚴重的錯誤,需要指出。 (盡管很幸運,在這種情況下它可能不會給您造成任何問題)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM