JSP ページに 2 つのフォームがあり、1 つにはテキスト フィールドが含まれています。他のフォームが送信されるたびに、そのテキスト フィールドに含まれる値がコピーされ、そのテキスト値が隠しパラメーターに書き込まれるようにする必要があります。
より明確に:
- 1 つのフォームの名前は「検索」です。
- 別のフォームの名前は「changeInitialForm」です。
- テキスト フィールドは「検索」フォームに含まれており、その名前は「searchString」です。
- 「changeInitialForm」には隠しフィールドがあり、これも「searchString」という名前です。
- 目的は、ユーザーがフォームを送信するか別のフォームを送信するかにかかわらず、テキスト フィールドの値とともに「searchString」パラメーターが渡されるようにすることです。
「changeInitialForm」が送信されたときに実行されるアクションをJavaScriptに含めようとしました。これは、テキストフィールドの値を読み取って隠しパラメーターに書き込みます。
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" は非常に異なることを行うため、単一のフォームに結合することはできません。