我有一个类似下面的表单,我希望在提交之前将“隐藏”项中的值附加到“搜索”项目:
<form action="...." method="get" accept-charset="utf-8" >
<input type="search" name="a1" results="0" value="" placeholder="some texts" class="search-form-input"><!-- search value -->
<input name="a1" type="hidden" value="string to be added"><!--hidden value-->
</form>
但结果网址会是这样的... a1 = string + to + be + added
稍后我尝试使用javascript来获取搜索值和隐藏值并将它们组合起来:
<form action="...." method="get" accept-charset="utf-8" >
<input type="search" name="a1" results="0" value="" placeholder="some texts" class="search-form-input"><!-- search value -->
<input name="a2" type="hidden" value="string to be added"><!--hidden value-->
<script language="javascript">
var a;
a = document.getElementsByName('a1').value +
document.getElementsByName('a2').value;
alert(a);
</script> </form>
但是弹出警报说:NaN。
如何在提交到另一个cgi-page之前使用javascript联合2值?
答案 0 :(得分:2)
正如Aycan所说,或者你可以使用Forms集合:
document.forms[0].a2.value;
但是如果你从表单的提交监听器运行它,那就更容易了:
<form onsubmit="this.a1.value += this.a2.value" ...>
虽然最好使用一个函数来做到这一点:
<form onsubmit="addValue(this)" ...>
...
function addValue(form) {
form.a1.value += form.a2.value;
}
答案 1 :(得分:1)
getElementsByName返回一个元素数组。你可以得到这个数组的第一个元素,它位于索引0。
var a;
a = document.getElementsByName('a1')[0].value + document.getElementsByName('a2')[0].value;
alert(a);