2017-01-03 12 views
0

最新のバージョンでは無料のjQGridを使用していますが、jQuery Migrate 1.4.1(1.6.xから1.9.2)とjQuery UI 1.12.1から移行しています。 jQuery/jQuery UIの更新フォームを編集した後も、もう動作しません!編集フォームを起動するとjQGridエラーが発生する

CODE:

onInitializeForm: function(formid) { 
    var form = $(formid).attr('id').split('-').pop(); 
    var id = $(formid).find('#id_g').val(); 
    var bt_gerar = $('<input />').attr('type', 'button').val('Gerar').click(function() { 
     $(formid).find('input[name="senha"]').val(gerarPassword()); 
    }); 
    if (form === 'laudos') $(formid).find('input[name="senha"]').after(bt_gerar); 
    if (form === 'usuarios') $(formid).find('input[name="senha"]').val(''); 
    $(formid).find('input[name="criacao"], input[name="exclusao"], input[name="data"]').datepicker({ 
     dateFormat: 'dd/mm/yy' 
    }); 
    /* UPLOAD LAUDO */ 
    var base_url = window.location.protocol + "//" + window.location.host + "/_dev/"; 
    $('#arquivo').uploadify({ 
     'swf' : base_url + 'admin/js/uploadify-new/uploadify.swf', 
     'uploader' : base_url + 'admin/js/uploadify-new/uploadify.php?laudo=true', 
     'cancelImage' : base_url + 'admin/img/cancel.png', 
     'buttonImage' : base_url + 'admin/img/upload_mini.png', 
     'wmode'  : 'transparent', 
     'width'  : '20', 
     'height' : '20', 
     'auto'  : true, 
     'multi'  : false, 
     'fileExt' : '*.pdf', 
     'fileDesc' : 'Arquivo PDF (.PDF)', 
     'onComplete': function(event, ID, fileObj, response, data) { 
      $('#arquivo').before($('<input />').attr({type:'text',id:'arquivo_temp',class:'FormElement',name:'arquivo',value:response,role:'textbox'})); 
      $('#arquivo, #arquivoUploader, #arquivoQueue').remove(); 
      $('#arquivo_temp').attr('id','arquivo').hide(); 
      $('#arquivo').after($('<img />').attr({src:'/laudos/pdf.png',id:'arquivo_icone'})); 
     } 
    }); 

ERROR:

TypeError: $(...).closest(...).attr(...).replace is not a function 

FILE:ラインでjquery.jqgrid.src.js

コードエラーLINE:

$id = $(this).closest("table.ui-jqgrid-btable").attr("id").replace(/_frozen([^_]*)$/, "$1") 

は、任意の光を手に入れましたか? Thk yu!

答えて

0

使用するjqGridの正確なバージョンを指定してください。 jquery.jqgrid.src.jsの行19319は(here参照)を含む。 「最新のバージョンでは無料のjQGridを使用しています」というステートメントは、十分な情報を提供していません。

投稿した$id = $(this).closest("table.ui-jqgrid-btable").attr("id").replace(/_frozen([^_]*)$/, "$1")の行には、無料のjqGridのバージョン4.13.5に行番号19319があります。コードは$.fn.fmatter.rowactionsの内部にあります。したがって、おそらくformatter: "actions"の使用に関するいくつかの問題がありますが、対応する列にはcolModelは含まれていません。メソッド$.fn.fmatter.rowactionsは、アクションボタンのonclickで呼び出されます。これは、ui-jqgrid-btableクラスでなければならないjqGridの内側になければなりません。

私が推測するのは難しいですが、なぜエラーが発生するのですか? (ui-jqgrid-btableクラスの削除のような)jqGridクラスのいくつかの違法な変更を行ったか、jqGridコンテンツまたは他の奇妙なものの外にグリッドコンテンツ(アクションボタンを含む)を移動しました。いずれにしても、colModelの列の定義を含める必要があります。この定義にはformatter: "actions"が使用されます。

ところで、無料のjqGridはformatter: "actions"の代わりに使用できるtemplate: "actions"をサポートしています。 template: "actions"は、以下の設定

formatter: "actions", align: "center", label: "", autoResizable: false, frozen: true, 
fixed: true, hidedlg: true, resizable: false, sortable: false, 
search: false, editable: false, viewable: false 

width jqGridのいくつかの他のオプションに依存した値の設定のショートカットです。 formatter: "actions"(古いバージョンのjqGridの場合でも)の列のプロパティのほとんどが厳密に推奨されています。

jqGrid 4.13.6を無料でアップデートし、formatter: "actions"template: "actions"に置き換えるか、またはeditable: falseと上記の他のプロパティをアクションの列に交互に追加することをお勧めします。私はそれがあなたの問題を解決することを願っています。

関連する問題