【问题标题】:JSF 2.0 command button to prevent multiple submission using jQueryJSF 2.0 命令按钮使用 jQuery 防止多次提交
【发布时间】:2012-11-05 09:35:50
【问题描述】:

我正在使用 JSF 2.0 并在单击双击提交按钮时处理多次提交。

我使用 jQuery 在单击时禁用命令按钮, 这是我的代码:

$("input[name='form:submitButton']").click(function() {
    $(this).attr("disabled", true);
    return true;
});

当我点击按钮时,提交按钮成功禁用,但提交根本没有触发。

谁能给我一些提示?

非常感谢!!

【问题讨论】:

  • 您确定选择器工作正常吗? alert('xx: ' + $("input[name='form:submitButton']").length) 打印什么?
  • 我猜你的页面有错误,因为你的代码在这里运行良好:jsfiddle.net/N7n7X。检查控制台是否有错误
  • 我刚刚检查过了。选择器正在工作,并且控制台上没有捕获到错误。

标签: jquery jsf-2


【解决方案1】:

试试

$("input[name='form:submitButton']").click(function() {
    setTimeout("$(this).attr('disabled', true);", 50);
    return true;
});

或

<h:commandButton value="Go"
   onclick="setTimeout('this.disabled = true;', 50);" 
   action="#{bean.go()}"/>

【讨论】:

    【解决方案2】:

    试试这样的

    <h:commandButton value="Submit" onclick="document.getElementById(\'' + this.id + '\').disabled=true;">
      <f:ajax execute="@form" listener="#{bean.listener}"/> 
    </h:commandButton>
    

    您可以添加到f:ajax oncomplete="....disabled=false",或更新整个视图以重新启用按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 2013-03-05
      • 2017-05-05
      • 1970-01-01
      • 2013-02-21
      • 2016-05-23
      • 1970-01-01
      相关资源
      最近更新 更多