JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – JSF在ENTER键上调用backing bean方法和reRender组件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个数据表作为搜索字段.我希望在按下ENTER键时调用辅助bean上的方法,以及要重新呈现的DataTable.

到目前为止,我的方法仅适用于IE 6和7,而不适用于FF.这是inputText:

{applicantProductListBean.applicantNameFiltervalue}"
 id="applicantNameFilterValue" onkeypress="submitByEnter(event)">

这是我调用的Javascript方法:

 function submitByEnter(E){
 if(e.keyCode==13){
      // alert("Enter was pressed");
      e.returnValue=false;
      e.cancel=true;
      document.getElementById("applicantProductListForm:refreshButton").click();
 } 
}

如您所见,Javascript方法点击页面上存在的按钮刷新:

refreshData方法不返回任何内容.如前所述,这仅适用于IE 6和IE 7.

有谁知道为什么它在FF中不起作用?

我正在考虑的另一个选择是HotKey,它确实可以捕获ENTER的事件,但它只能调用Javascript,所以它不合适.

通过RichFaces或普通JSF这样做的正确方法是什么?

干杯!

更新:

BalusC略微修改了答案,有效的脚本是:

if (event.preventDefault) {
// Firefox
event.preventDefault(); 
} else {
// IE 
event.returnValue = false; 
}
最佳答案
尝试通过以下方式替换JS块:

function submitByEnter(e){
    if (e.keyCode == 13) {
        e.preventDefault();
        document.getElementById("applicantProductListForm:refreshButton").click();
    } 
}

或更好,

function submitByEnter(e){
    if (e.keyCode == 13) {
        document.getElementById("applicantProductListForm:refreshButton").click();
        return false;
    } else {
        return true;
    }
}

和输入的onkeypress

onkeypress="return submitByEnter(event)"

如果这不起作用,请运行Firebug的JS调试器以查看JS代码是否按预期运行.

大佬总结

以上是大佬教程为你收集整理的javascript – JSF在ENTER键上调用backing bean方法和reRender组件全部内容,希望文章能够帮你解决javascript – JSF在ENTER键上调用backing bean方法和reRender组件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。