< sx:submit>按钮在IE中工作,但在Chrome中不起作用

up9lanfz  于 2023-03-05  发布在  Go
关注(0)|答案(1)|浏览(130)

问题是,表单上使用标记生成的“Submit”按钮sx:submit在Chrome浏览器中单击时似乎完全不起作用。
jsp页面源代码如下所示:

<%@taglib uri="/struts-tags" prefix="s" %>
<%@taglib uri="/struts-dojo-tags" prefix="sx" %>
<div>
  <table>
    <s:form action="myFormAction">
      <thead>
        <tr><th>My Form</tr></th>
      </thead>
      <tbody>
        <tr>
          <th>Value 1</th>
          <td><s:property value="%{mything.Value1}" /></td>
        </tr>
        <tr>
          <th>Text 1: </th>
          <td><s:textfield name="someName" value="%{mything.SomeName}" /></td>
        </tr>
        <tr>
          <th>Text 2: </th>
          <td><s:textfield name="someName2" value="%{mything.SomeName2}" /></td>
        </tr>
        <tr>
          <th colspan="2">
            **<sx:submit cssClass="button" value="Save" executeScripts="true" />**
          </th>
         </tr>
      </tbody>
    </s:form>
  </table>
</div>

我在Chrome中打开开发工具并点击按钮,因为通常当一个按钮看起来什么都不做时,实际上会抛出一个JavaScript错误。但看起来什么都没发生。没有错误。我把应用程序置于调试模式(运行在Eclipse 2022-12(4.26.0),ApacheTomcat 9.0.24中),并在与Dojo操作关联的方法上放置断点,如struts xml文件中所指定的。
我在InternetExplorer中打开了应用程序,它运行得很好。我检查了IE中生成的HTML,它与Chrome中生成的不同:
在IE中:<input class="button" id="widget_1597536618" type="submit" __doClobber__="true" __clobberAttrs__="onclick$joinpoint,onclick$joinpoint$method,onclick" dojoType="struts:Bind" executeScripts="true" ajaxAfterValidation="false" events="onclick" onclick$joinpoint$method="function(){}" onclick$joinpoint="[object Object]" value="Save" />
在Chrome浏览器中:<input type="submit" dojotype="struts:Bind" events="onclick" value="Save" validate="false" ajaxafterValidation="false" id="widget_832070295" class="button" executescripts="true">
所以,我不确定为什么这两个东西的生成方式不同,但我知道按钮在IE中工作并执行适当的代码,但它在Chrome中根本拒绝做任何事情。
编辑:我还要补充一点,我们使用的是Struts 2.1.8。

ih99xse1

ih99xse11#

    • 答案**与Struts或Chrome无关。此表格/表单格式不正确。

代替

<table>
  <s:form>
    <!-- etc -->
  </s:form>
</table>

必须如此

<s:form>
  <table>
    <!-- etc... -->
  </table>
</s:form>

当我输入这个问题时,我突然想到这个结构有点不对劲,但是这个应用程序太老了,而且已经写了这么长时间了,所以我就把它吹了,因为"这不可能是它不工作的原因。"
所以,记住孩子们,相信你的直觉。如果你认为"这不可能是答案",无论如何都要去看看。

相关问题