「検索」と「マトリックス検索」の2つのボタンがあります。「検索」ボタンを最初にクリックすると、本来の動作が実行されます。しかし、「マトリックス検索」ボタンをクリックした後に「検索」ボタンをクリックすると、matrixSearch() 関数が呼び出されます。なぜこれが起こるのですか?スコープと何か関係がありますか?
以下は私の行動の順序です:
ボタンAをクリック--->正常に動作します(機能Aを呼び出します)
ボタン B をクリックします---> 正常に動作します (機能 B を呼び出します)
ボタン A をクリック ---> ボタン B の onClick 関数を呼び出す (関数 B を呼び出す) なぜ??
jsp ファイル:
<input type="submit" title="Search" value="Search"
name="Search" id="Search"
onClick="clickSearchButton();" />
<input type="button" class="buttonIndent" value="Matrix Search"
onclick="matrixSearch()" />
function matrixSearch(){
//some Code omitted for simiplicity
form.action = '<%= request.getContextPath() %>/matrixSearch.do';
}
function clickSearchButton(){
form.action = "<%= request.getContextPath()%>/search.do";
form.setAttribute("target", "_blank");
document.form.submit();
}
Struts 構成ファイル:
<action path="/search" type="com.action.MyAction"
name="form" scope="session" validate="false"
parameter="search">
<forward name="success" path="tile.view"/>
</action>
<action path="/matrixSearch"
type="com.action.MyAction"
name="form" parameter="searchMatrix"
scope="request" validate="false">
<forward name="success" path="/matrix_search.jsp"/>
<forward name="failure" path="tile.view"/>
</action>