Javascript 如何在提交表单之前将另一个字符串附加到表单的值?

Javascript 如何在提交表单之前将另一个字符串附加到表单的值?,javascript,html,forms,Javascript,Html,Forms,我有一个如下的表单,我想在提交之前将“隐藏”项中的值附加到“搜索”项中: <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 n

我有一个如下的表单,我想在提交之前将“隐藏”项中的值附加到“搜索”项中:

<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>

但是结果url将是这样的…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>

var a;
a=document.getElementsByName('a1').value+
document.getElementsByName('a2')。值;
警报(a);
但是弹出的警告是:南


在提交到另一个cgi页面之前,如何使用javascript连接2值?

getElementsByName返回一个元素数组。可以获取此数组的第一个元素,该元素位于索引0处

var a;
a = document.getElementsByName('a1')[0].value + document.getElementsByName('a2')[0].value;
alert(a);

getElementsByName返回元素数组。可以获取此数组的第一个元素,该元素位于索引0处

var a;
a = document.getElementsByName('a1')[0].value + document.getElementsByName('a2')[0].value;
alert(a);

正如Aycan所说,您也可以使用表单集合:

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;
}

...
函数addValue(form){
表a1.值+=表a2.值;
}

正如Aycan所说,您也可以使用表单集合:

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;
}

...
函数addValue(form){
表a1.值+=表a2.值;
}

谢谢你的意见。谢谢你的意见。