Question

J'ai un éditeur JQuery JHTML WYSIWYG dans une forme et j'ai besoin d'apporter sa sortie à une textaree manuellement.Le formulaire est soumis via AJAX.La fonction UpdateText est appelée pour saisir ce qui est dans le WYSIWYG DIV et la placer dans une Textarea pour activer AJAX de l'envoyer.J'utilise le rappel Ajaxform "Beforesubmit" pour tirer cette fonction.

//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;
}; 

Cela ne fonctionne pas sur la première soumission ... Vous devez cliquer sur Soumettre deux fois avant que UpdateText ne tire réellement.Est-ce que quelqu'un a des idées?

merci,

Était-ce utile?

La solution

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;
}; 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top