Ajax가 제 2 시간을 제출할 때까지 TextArea가 작동하지 않는 jQuery Appending Value

StackOverflow https://stackoverflow.com/questions/5061886

문제

jQuery JHTML WYSIWYG 편집기를 형식으로 보내고 텍스트 쟁이에 수동으로 출력을 추가해야합니다.양식은 AJAX를 통해 제출됩니다.UpdateText 함수는 WYSIWYG DIV의 Whats를 잡고 TextArea에 배치하여 Ajax를 보낼 수 있도록합니다.AjaxForm "BeFORESUBMIT"콜백을 사용 하여이 기능을 해제합니다.

//For Ajax Form
$('#addFaci').ajaxForm({
        beforeSubmit: updateText,
        success: function(response) {
            eval(response);
        }
});

function updateText(formData, jqForm, options){
    var save = '#detail';
    $(save).val($(save).htmlarea("toHtmlString"));
    return true;
}; 
.

첫 번째 제출에서 작동하지 않습니다 ... UpdateText가 실제로 화재하기 전에 두 번 제출을 클릭해야합니다.어떤 아이디어가 있습니까?

감사합니다

도움이 되었습니까?

해결책

When you hit submit this is what happens:

  1. Form data is being collected
  2. beforeSubmit fires, and the collected form data is being passed as the first parameter
  3. You're changing the value of textarea, but it's too late, because data has been already collected

Instead of changing textarea's value you should modify formData object.

UPD. Try this:

for (var i in formData) {
  if (formData[i].name == '...name of your textarea here...') {
    formData[i].value = ...wysiwyg's html...
  }    
}

Even easier, remove the hidden textarea and use this:

function updateText(formData, jqForm, options) {
    formData.push({name: 'textarea_name', value: .... })
    return true;
}; 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top