2017-01-03 6 views
0

jQuery는 최신 버전과 jQuery Migrate 1.4.1 (1.6.x에서 1.9.2) 및 jQuery UI 1.12.1에서 무료 jQGrid를 사용하고 있습니다. 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 라인에 19,319

코드 오류 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.rowactionsonclick 작업 버튼으로 호출되며, 이는 ui-jqgrid-btable 클래스 여야하는 jqGrid 내부에 있어야합니다.

나는 추측하기가 어렵다. 왜 당신이 오류를 얻는가? jqGrid 클래스를 불법적으로 수정 (ui-jqgrid-btable 클래스 삭제)하거나 jqGrid 컨텐츠 또는 다른 이상한 것 이외의 그리드 컨텐츠 (작업 버튼 포함)를 이동했습니다. 어떤 식 으로든 colModel의 열 정의는 formatter: "actions"을 사용해야합니다.

그런데 무료 jqGrid는 대신 사용할 수있는 template: "actions"을 지원합니다. template: "actions"이있는 jqGrid의 다른 옵션에 따라 값을 다음과 같이 설정

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

width 설정의 바로 가기입니다. formatter: "actions" (이전 버전의 jqGrid의 경우조차도) 열에 대해서는 대부분의 속성을 엄격하게 권장합니다.

jqGrid 4.13.6을 무료로 업데이트하고 formatter: "actions"template: "actions"으로 바꾸거나 (동작 열에 editable: false 및 위의 다른 속성을 번갈아 추가하는 것이 좋습니다). 문제가 해결 될 수 있기를 바랍니다.