0

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

1 回答 1

0

我终于找到了答案。有两个问题。第一个问题是使用以下语句:form.setAttribute("target", "_blank");

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

form.setAttribute("目标", "_self");

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

感谢每一个参与这个问题的人。

于 2012-09-06T21:57:37.153 回答