我在JSP页面中有两个表单,一个包含一个文本字段。我需要确保无论何时提交其他表单,它都会复制该文本字段中包含的值,并将其文本值写入隐藏参数中。
更清楚:
我尝试在javascript中包含一个动作,在提交“changeInitialForm”时执行,该动作读取文本字段值并将其写入隐藏参数:
function searchContacts(form)
{
var searchString= document.search.searchString.value;
form.searchString.value= searchString;
}
...
<form name="search" >
<input type="text" name="searchString">
<button name="search"> Cerca </button>
</form>
...
<form name="changeInitialForm" method="post" action="AddressBookView.jsp" onSubmit="searchContacts(this.form);">
<input type="hidden" name="selectedInitial"/>
<input type="hidden" name="status" value="view"/>
<input type="hidden" name="searchString" />
</form>
但是在提交“changeInitialForm”之后,无论文本字段值如何,并且传递了空参数,我都会看到这个用firebug:
我也很欣赏另一种解决方案,因为我知道我在做什么是棘手的,但我找不到另一种方法来做到这一点。 “search”和“changeInitialForm”不能以单一形式连接,因为它们做的事情非常不同。
答案 0 :(得分:1)
以下似乎有效
function searchContacts(form)
{
var searchString= document.search.searchString.value;
form.searchString.value= searchString;
}
...
Form 1:
<form name="search" >
<input type="text" name="searchString">
<button name="search"> Cerca </button>
</form>
...
Form 2:
<form name="changeInitialForm" method="post" action="AddressBookView.jsp" onSubmit="searchContacts(this);">
<input type="hidden" name="selectedInitial"/>
<input type="hidden" name="status" value="view"/>
<input type="hidden" name="searchString" />
</form>
请注意,searchContacts(this.form)
已替换为searchContacts(this)
。
更新:
某些javascript代码调用onsubmit
时,不会触发form.submit()
事件。因此,提交表单时需要的是单独调用searchContacts
,例如使用
searchContacts(document.changeInitialForm);
document.changeInitialForm.submit();