document.getElementById().value 在 Firefox 中不工作
document.getElementById().value not working in Firefox
我知道这里有人问过类似的问题。但是,我的不同之处在于我想通过 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 中运行良好。所以问题是:我该如何为 Firefox 解决这个问题?
如果您将按钮标记更改为特定类型:'button',而不是让它默认 'submit' 按钮,这将解决您的问题。
<button id="but_order" type="button" onclick="getItems();">Do stuff</button>
您遇到的问题是表单中定义的唯一按钮默认为 'submit' 按钮,然后在调用 getItems() 函数之前提交表单。
这是一个示例解决方案:https://jsfiddle.net/nmiddleweek/8dpzkfqo/11/
干杯,
尼克
我知道这里有人问过类似的问题。但是,我的不同之处在于我想通过 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 中运行良好。所以问题是:我该如何为 Firefox 解决这个问题?
如果您将按钮标记更改为特定类型:'button',而不是让它默认 'submit' 按钮,这将解决您的问题。
<button id="but_order" type="button" onclick="getItems();">Do stuff</button>
您遇到的问题是表单中定义的唯一按钮默认为 'submit' 按钮,然后在调用 getItems() 函数之前提交表单。
这是一个示例解决方案:https://jsfiddle.net/nmiddleweek/8dpzkfqo/11/
干杯, 尼克