初始点击后,两个按钮触发相同的功能

时间:2012-09-06 15:22:20

标签: java javascript html java-ee struts

我有两个按钮,“搜索”和“矩阵搜索”。当我第一次单击“搜索”按钮时,它会执行它应该执行的操作。但如果我点击“搜索” 单击“矩阵搜索”按钮后,它会调用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>

1 个答案:

答案 0 :(得分:0)

我终于找到了答案。有两个问题。第一个问题是以下声明: form.setAttribute(“target”,“_ blank”);

出于某种原因,即使在我的下一次按钮点击期间,此属性也会被保留。 所以我在我的其他功能中添加了以下内容

form.setAttribute(“target”,“_ self”);

第二个问题是我的clickSearchFunction()出现了问题。这个函数很长,所以我没有在我的问题中写出整个代码。函数中的一个声明是访问我删除的字段,因为我不再需要它了。 我刚刚删除了这一行,它就像一个魅力。

感谢每个人都对这个问题进行了拍摄。