document.getElementById()。值在Firefox中不起作用

时间:2016-09-03 00:12:59

标签: javascript html firefox getelementbyid

我意识到这里已经提出了类似的问题。但是,我的不同之处在于我想在Javascript函数的元素中设置一个值。

类似问题的答案不适合我的问题,并没有解决。

我有以下代码:

function getItems() {
                        var sixOrLower = ["1", "2", "3", "4", "5", "6"];
                        var higherThanSix = ["7", "8", "9", "10", "11", "12"];
                        var arr = ["one", "two", "three", "four", "five", "six"];
                        for(i=0; i<sixOrLower.length; i++){
                            document.getElementById(arr[i]).value = sixOrLower[i];
                        }

                        var arr2 = ["seven", "eight", "nine", "ten", "eleven", "twelve",];
                        for(j=0; j<higherThanSix.length; j++){
                            document.getElementById(arr2[j]).value = higherThanSix[j];
                        }
                        document.getElementById("f").submit();
                }

sixOrLower和higherThanSix是由另一个没有其他用途的函数填充的数组。这很好。

现在我有一个隐藏字段的表单,我想要存储上面代码中的值:

<form class="f" id="f" name="f" action="<? echo htmlspecialchars($_SERVER['PHP_SELF']);?>" enctype=
      "multipart/form-data" method="post">
                    <input type="hidden" name="one" id="one" value="">
                    <input type="hidden" name="two" id="two" value="">
                    <input type="hidden" name="three" id="three" value="">
                    <input type="hidden" name="four" id="four" value="">
                    <input type="hidden" name="five" id="five" value="">
                    <input type="hidden" name="six" id="six" value="">
                    <input type="hidden" name="seven" id="seven" value="">
                    <input type="hidden" name="eight" id="eight" value="">
                    <input type="hidden" name="nine" id="nine" value="">
                    <input type="hidden" name="ten" id="ten" value="">
                    <input type="hidden" name="eleven" id="eleven" value="">
                    <input type="hidden" name="twelve" id="twelve" value="">
                    <button id="but_order" onclick="getItems();">Do stuff</button>
</form>

提交表单时,我想使用服务器端脚本中的字段。但是,Firefox中未填充隐藏的输入字段。它在Chrome和IE中运行良好。所以问题是:我如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

如果您将按钮标记更改为特定类型:&#39;按钮&#39;而不是让它默认为&#39;提交&#39;按钮这将解决您的问题。

<button id="but_order" type="button" onclick="getItems();">Do stuff</button>

您遇到的问题是表单中定义的唯一按钮是默认为“提交”。按钮,然后在调用getItems()函数之前提交表单。

以下是一个示例解决方案:https://jsfiddle.net/nmiddleweek/8dpzkfqo/11/

干杯, 尼克