【问题标题】:Add javascript event to jqGrid将 javascript 事件添加到 jqGrid
【发布时间】:2009-08-03 10:48:19
【问题描述】:

我正在使用 jqGrid 插件,我想在编辑表单的每个字段中添加 onKeyPress 事件。

此代码适用于 IE8,但在 FF 和 IE7 中失败

 {name: 'name', index: 'name', width: 200, editable: true, 
     sortable: false, search: true, editoptions: { readonly: false, size: 32, 
     'onKeyPress': 'if($("#cbLanguage").attr("checked"))togeo();' }, 
     editrules: { required: true }}

如何修改它以使其在 IE7 和 FF 中工作?谢谢。

【问题讨论】:

  • 你有什么错误吗?你能在函数里面放一个console.log,看看它是否被调用。你有演示网址吗?
  • 我没有收到任何错误。遗憾的是没有网址。我正在本地机器上测试它。
  • 不妨试试控制台日志或 KeyUp 函数中的调试器语句,看看是否调用了它的事件。能不能用firebug看一下事件是否也加到输入框里了
  • 你也可以使用 $('input.editClass').live('keyup' func)。如果您在处于编辑模式时向输入添加一个类,则 keyup 事件将冒泡到实时处理程序并运行您的函数
  • 我测试过了。并且永远不会触发 onkeypress 事件。

标签: javascript jquery jqgrid


【解决方案1】:

找到了解决方案! 为了将事件分配给字段,我需要在编辑选项中添加以下内容:

dataEvents:[{type:'keypress', fn: function(e) {
if($("#cbLanguage").attr("checked"))togeo(); }}]

【讨论】:

    【解决方案2】:

    感谢 karim79 发现事件问题。

    此外,您最好使用函数而不是隐含的字符串作为函数。易于阅读/维护。

    name: 'name', index: 'name', width: 200, editable: true, 
         sortable: false, search: true, editoptions: { readonly: false, size: 32, 
         'onKeyUp': keyUpFn }, 
         editrules: { required: true }}
    
    
    
    function keyUpFn (){
    
     $("#cbLanguage").is(':checked') ){
       togeo();
     }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 2020-08-31
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多