表单值未在IE中填充javascript

时间:2011-02-03 16:18:35

标签: javascript html

我有一个调用一些javascript的链接。 javascript填充表单值并提交它。除了Internet Explorer之外,所有浏览器都可以正常工作。

页面上的所有其他选项都是链接,这就是为什么我也希望此选项成为链接

感谢

        <script type="text/javascript">



        function timeZone(){

            today = new Date()
            difference = today.getTimezoneOffset()

            var field = document.getElementById("form").timezone
            alert("test")
            if(difference < 0){
                difference = difference * -1
                field.value =  "GMT+"  + pad(Math.floor(difference/60), 2) + ":" + pad(difference%60, 2);
            }
            else{
                field.value = "GMT-"  + pad(Math.floor(difference/60), 2) + ":" + pad(difference%60, 2);
            }
            form = document.getElementById('form');
            form.submit();


        }

        function pad(num, digits) {
            num = String(num); while (num.length < digits) { num="0"+num; }; return num;
        }

    </script>









                    <form method="get" action="ViewLog.do?page=1" id="form">
                        <input id="timezone" name="timezone" type="hidden" value=""></input>
                        <img id="activityHistoryImage" Class = "navImage" src="imgs/history.png" alt="Activity history"/>


                        <a   href="ViewLog.do?page=1"id ="activityHistoryButton"class = "navButton" onclick="timeZone(); return false">Activity history</a><br/>
                        <small class="navSubText">See your most recent activities </small>
                    </form>

2 个答案:

答案 0 :(得分:1)

Internet Explorer可能会或可能不会出现您向form元素提供“表单”ID的事实;我想它可能会这样。通常,最好避免使用标记名称作为idname属性的值。

此外,您的隐藏输入元素有一个id,但您没有使用它来引用它。变化:

var field = document.getElementById("form").timezone

var field = document.getElementById("timezone");

答案 1 :(得分:1)

  1. 使用 var 声明变量。
  2. ;放在应有的位置。