2013-05-01 7 views
1

현재 jEditable 플러그인을 사용하여 업데이트 가능한 텍스트를 작성하고 있습니다. 내 serverside는 Struts2로 개발되었으며, 서버 URL은 JSON 결과를 반환하는 struts 액션입니다. 나는 (A H1입니다) 내 필드에 jeditable로드하려면 다음 코드를 사용 : 당신이 볼 수 있듯이,이 코드에서 나는 아직 type : autogrow 기능을 사용하지 않는jEditable에서 Autogrow가 AJAX 호출을 수행하는 대신 모든 것을 전송합니다.

$("h1.myclass").editable("/MyApp/dinamic/updateText.action", { 
    indicator : "<center><img src='/MyApp/images/loading.gif'></center>", 
    submit : 'Save', 
    cancel : 'Cancel', 
    tooltip : "Click to edit", 
    onblur : "ignore", 
    name  : "myField", 
    callback : function(value, settings) { 
      alert(JSON.stringify(value)); 
    } 
}); 

을하고, 그렇게 잘 작동 멀리. 문제는 내가 type : autogrow을 추가 할 때, 해당 텍스트가 표시됩니다된다는 것입니다,하지만 난 저장 버튼을 클릭하면 브라우저가

http://localhost:8080/MyApp/myform.action?myfield=YadaYada 
YadaYada 내가 저장하려고 실제 텍스트입니다

과 같은 URL로 리디렉션됩니다 myform.action은 이미 내가 본 페이지입니다.

누군가가이 버그가 왜 발생하는지 실마리가 있습니까? \

OBS : 자동 성장 대신 growfield2를 사용해도 결과는 동일합니다.

+0

tihs를 알았습니까? 나는 똑같은 문제를 겪고있다. – Yecats

+0

Unfortunatelly not ... 내가 구현할 수있는 유일한 해결책은 Autogrow ... = ( –

답변

0

내가 옳은지 알 수는 없지만이 문제를 직접 해결하려고 노력하고 있습니다. 내가 발견 한 것은 일종의 코드가 "약간"꺼져 있으면 페이지가 다시 라우팅 될 것입니다. 자동 굴림을 작동 시켰고 이것이 당신에게 효과가 있다고 생각합니다.

 $.editable.addInputType('autogrow', { 
      element: function (settings, original) { 
       var textarea = $('<textarea />'); 
       if (settings.rows) { 
        textarea.attr('rows', settings.rows); 
       } else { 
        textarea.height(settings.height); 
       } 
       if (settings.cols) { 
        textarea.attr('cols', settings.cols); 
       } else { 
        textarea.width(settings.width); 
       } 
       $(this).append(textarea); 
       return (textarea); 
      }, 
      plugin: function (settings, original) { 
       $('textarea', this).autogrow(settings.autogrow); 
      } 
     }); 

     $("h1.myclass").editable("/MyApp/dinamic/updateText.action", { 
      type: "autogrow", 
      indicator: "<center><img src='/MyApp/images/loading.gif'></center>", 
      submit: 'Save', 
      cancel: 'Cancel', 
      tooltip: "Click to edit", 
      onblur: "ignore", 
      name: "myField", 
      callback: function (value, settings) { 
       alert(JSON.stringify(value)); 
      }, 
      autogrow: { 
       lineHeight: 16, 
       maxHeight: 512 
      } 
     }); 
+0

미안하지만'type : "autogrow"로 줄을 추가하고 자동 증가 높이에 대한 설정을 할 수있다. 당신이 추가 한 것을 보았습니다. 내가 알 수있는 한 당신의 addInputType은 표준입니다. 당신은 아무것도 광고하지 않았습니다. –

+0

예, addInputType은 표준입니다. 더 중요한 부분은 제가 자동 증가를 넣었다는 것입니다 : { } 부품을 설정하는 것뿐만 아니라 유형을 설정하는 것입니다. 내가 그것을 놓아 버리면 묘사 한 것처럼 행동하게됩니다. 그걸로 해 보셨습니까? – Yecats

+0

불행히도 예. 귀하의 것과 정확하게 동일한 필드를 구성했습니다 ... –