2013-06-24 2 views
2
나는 CRUD 형태로 같은 것을 실행해야

(간체 예)를 제출변경 필드 값은

$crud->form->js('submit',$crud->form->getElement('data')->js()->val('My text')); 

는 내가 전에 제출 data 필드를 변경해야합니다. 이벤트는 실행되지만 필드는 업데이트되지 않습니다. 이 이벤트가 발생하면 POST 값이 이미 할당 된 것 같습니다.

data은 TinyMCE 구성 요소에 의해 숨겨진 텍스트 영역입니다. 애드온으로 통합하려고합니다. 모든 작품은 괜찮지 만 양식을 아약스를 통해 보내면 TinyMCE 콘텐츠의 텍스트 영역을 수동으로 업데이트해야합니다. "원시"자바 스크립트 (js("submit","document.getElementById(...)")을 포함하여 많은 방법을 테스트했지만 지금까지는 행운이 없습니다.

제출하기 전에이 입력란을 어떻게 변경할 수 있습니까?

감사합니다.

+2

까다로운 질문 : 몇 가지 아이디어 적절한 응답이 전에 : 다음 + 해제가 입력 제출 한 후 JS의 작업을 수행 새로 작성 단추를 파괴 양식 (여기는 방법 : http://agiletoolkit.org/doc/form/enhancing). 또 다른 아이디어는 div가 아닌 form에 submit() 이벤트를 할당하는 것입니다. -> js (true) -> 찾기 ('form') -> submit (...); 마지막으로 form.js, submitForm 메소드를 콜백으로 패치 할 수 있습니다 (beforeSubmit) – romaninsh

+1

고마워요! 마지막으로 ui.atk4_form.js를 수정하여 'beforesubmit'이벤트를 시작하는 한 줄만 추가했습니다. 프로젝트에 포함 시키려면 github에 요청을 보냈습니다. atk4_form은 preventDefault stoppropagation을 사용하므로 단순히 이벤트 제출을 양식에 바인드 할 수 없으며 다른 솔루션은 너무 복잡하여 너무 간단합니다 :) – Jaume

답변

1

폼 데이터 직렬화 이전에 ui.atk4-form.jsthis.form.trigger('beforesubmit')을 추가하여 해결했습니다.

그런 다음 당신은 당신의 코드에 추가 할 수 있습니다

$form->js('beforesubmit', ... 
    //Changes to fields done here are submitted because form fields are still not processed. 
)