2013-05-13 48 views
1

我在JSP页面中有两种形式,一种包含文本字段。我需要确保每当提交其他表单时,它都会复制该文本字段中包含的值,并将其文本值写入隐藏参数中。以另一种形式包含的文本字段传递参数

更清楚:

  1. 一种形式被命名为 “搜索”;
  2. 另一种形式被命名为“changeInitialForm”;
  3. 该文本字段包含在“搜索”的形式,它的名称是“searchString”;
  4. “changeInitialForm”有一个隐藏字段,也叫做“searchString”;
  5. 其目的是确保用户是否提交一个或另一个表单,传递一个“searchString”参数与文本字段的值。

我想包括在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后“被提交后,无论文本字段的值,而空参数传递,我看到这个用萤火虫:

enter image description here

我也将不胜感激另一种解决方案,因为我知道我在做什么是棘手的,但我没有找到另一种方法来做到这一点。 “搜索”和“changeInitialForm”不能以单一形式加入,因为它们做的事情截然不同。

+0

您是否在使用jQuery?或只是本地JavaScript? – 2013-05-13 11:14:31

+0

提交按钮在哪里? – Aashray 2013-05-13 11:23:10

+1

看起来,当你点击“搜索”按钮时,你试图提交'.changeInitialForm'表单。但是,“搜索”表单不显示方法或动作或任何JavaScript方法?除非您使用AJAX,否则不能同时提交两个表单,这意味着比您期望的更复杂的问题。 – 2013-05-13 11:24:59

回答

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)取代。

form.submit()被一些JavaScript代码调用不会触发onsubmit事件:

UPDATE后,一些精度对这个问题的作者。因此,您提交表单时需要分别拨打searchContacts,例如使用

searchContacts(document.changeInitialForm); 
document.changeInitialForm.submit(); 
+0

它没有为我工作,该参数仍然是一个空字符串。我不需要提交按钮,因为我使用JavaScript代码提交表单。 – 2013-05-14 18:50:12

+0

我刚刚根据您刚给出的精度更新了我的解决方案。 – Nown 2013-05-14 21:07:49

相关问题