2012-12-12 2 views
1

datatables.editable 및 Jeditable을 사용하여 jquery Datatable을 구현했습니다. 편집 가능한 필드로 텍스트 영역을 사용할 수 있지만 편집 가능한 선택을 설정하는 데 문제가 있습니다.jeditable : 선택 사용시 오류 발생

oTable.makeEditable({ 
    sUpdateURL: "../ReconService.asmx/UpdateUser", 
    "aoColumns": [ 
     null, 
     null, 
     { 
      indicator: 'Updating user...", 
      tooltip: "Change user", 
      type: "select", 
      submit: "Save", 
      data: getUserFilterOptions() 
     } 
    ] 
}); 

나는 다음 DB에서 사용자 목록을 얻을 수있는 자바 스크립트/JQuery와 기능을 가지고 :

은 내가 편집을 초기화하기 위해 다음과 같은 코드가 있습니다. 함수 내에서 나는 여러 가지 다른 것들을 시도했다. 그것은 수동으로 지금의 약자로 기능은 웹 사이트에 지정된 형식으로 문자열을 조립 jeditable

다음과 같이 내가 가진 기능은 다음과 같습니다

function getUserFilterOptions() { 
    $.ajax({ 
     type:"POST", 
     contentType: "application/json; charset=utf-8", 
     url: "../ReconService.asmx/GetUsers", 
     dataType: "json", 
     success: function(result){ 
      var userResult = result.d; 
      if (userResult.length > 0){ 
       var text = "{'Select':'Select',"; 
       $.each(userResult, function(index, val) { 
        text += "'"; 
        text += val["value"]; 
        text += "':'"; 
        text += val["value"]; 
        text += "'"; 
        text += ","; 
       }); 
       text += "'selected:'Select'}"; 
       return text; 
      } 
     }, 
    }); 
} 

내가 함수를 단계별로 크롬 개발자 도구를 사용했다
"{ '선택', '관리자', '관리자', '사용자 1': '사용자 1', '선택': '선택'}"
형식은 다음과 같습니다. 편집 할 수있는 표 셀을 클릭하면 오류가 발생합니다.

Uncaught SyntaxError: Unexpected end of input jquery.jeditable.mini.js:34 $.editable.types.select.content jquery.jeditable.mini.js:34 $.fn.editable.each.reset.self.editing jquery.jeditable.mini.js:18 jQuery.event.dispatch jquery-1.8.3.js:3058 jQuery.event.add.elemData.handle.eventHandle jquery-1.8.3.js:2676

문자열 값을 복사하여 jeditable의 데이터 매개 변수에 직접 입력하면 문제가 발생합니다. 심지어이 리터럴 문자열을 반환하는 함수를 만든 및 그것을 잘 작동합니다. 다음과 같이

예, 함수의 내용을 바꿉니다

function getUserFilterOptions(){ 
    return "{'Select':'Select','Administrator':'Administrator','User1':'User 1','selected':'Select'}" 
} 

이 잘 작동합니다.

임 전문가는 자바 스크립트가 아니므로 도움을 주시면 감사하겠습니다.

답변

0

이 같은 동기식 비동기식에서 아약스 요청의 유형을 변경해야합니다

function getUserFilterOptions() { 
    return $.ajax({ 
    type:"POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/url", 
    dataType: "json", 
    async: false, 
    }).responseText; 
} 

내가 서버에서 JSON을 반환 시도하고 작동합니다.

관련 문제