我有两个按钮,“搜索”和“矩阵搜索”。当我第一次单击“搜索”按钮时,它会执行它应该执行的操作。但如果我点击“搜索” 单击“矩阵搜索”按钮后,它会调用matrixSearch()函数。为什么会这样?它与范围有什么关系吗?
以下是我的行动顺序:
点击按钮A --->工作正常(调用函数A)
点击按钮B --->工作正常(调用函数B)
点击按钮A --->调用Button 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 configuratin文件:
<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>
答案 0 :(得分:0)
我终于找到了答案。有两个问题。第一个问题是以下声明: form.setAttribute(“target”,“_ blank”);
出于某种原因,即使在我的下一次按钮点击期间,此属性也会被保留。 所以我在我的其他功能中添加了以下内容
form.setAttribute(“target”,“_ self”);
第二个问题是我的clickSearchFunction()出现了问题。这个函数很长,所以我没有在我的问题中写出整个代码。函数中的一个声明是访问我删除的字段,因为我不再需要它了。 我刚刚删除了这一行,它就像一个魅力。
感谢每个人都对这个问题进行了拍摄。