por - validacion de formularios con javascript ejemplos
¿Cómo ajax-enviar un formulario de entrada de texto desde CKEditor? (6)
Estoy utilizando el complemento de formulario CKEditor, jQuery y jQuery y me gustaría enviar el contenido del formulario CkEditor a través de una consulta Ajax. Aquí está mi código:
<form id="article-form" name="article-form" method="post" action="/myproject/save">
<textarea name="bodyText" style="visibility: hidden; display: none;"></textarea>
<script type="text/javascript">
CKEDITOR.replace(''bodyText'');
</script>
<a onClick="$("#article-form").ajaxSubmit();">Submit</a>
</form>
Desafortunadamente, parece que la solicitud Ajax no pasa el parámetro bodyText
;
¿Qué hice mal o cómo puedo lograr lo que necesito?
Gracias.
En mi caso, lo siguiente me ayudó, solo uso estas dos líneas antes de remarcar el formulario.
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
var data = $(''#myForm'').serializeArray();
Esto funciona mejor para mí: antes de Serializar devolución de llamada
$(''form#description'').ajaxForm({
beforeSerialize:function($Form, options){
/* Before serialize */
for ( instance in CKEDITOR.instances ) {
CKEDITOR.instances[instance].updateElement();
}
return true;
},
// other options
});
Probé algo como esto:
Primero tuve que poner un id = "#myForm" en @ Html.BeginForm después, puse estos en la parte de mis scripts donde uso el script:
<script type="text/javascript">
$(document).ready(function CKupdate() {
$(''#myForm'').ajaxForm(function () {
for (instance in CKEDITOR.instances) {
CKEDITOR.instances[instance].updateElement();
}
});
});
</script>
y luego hice algo como esto =] para mi botón de envío y funciona bien para mí, no presionando el botón Enviar dos veces =]
<button type="submit" id="submitButton" onclick="CKupdate();$(''#myForm'').ajaxSubmit();">Submit</button>
Si usa el complemento de formulario jQuery , puede usar la opción beforeSubmit para una solución más elegante:
$("#form").ajaxForm({
beforeSubmit: function()
{
/* Before submit */
for ( instance in CKEDITOR.instances )
{
CKEDITOR.instances[instance].updateElement();
}
},
// ... other options
});
Simplemente lo hice así:
$(''#MyTextArea'').closest(''form'').submit(CKupdate);
function CKupdate() {
for (instance in CKEDITOR.instances)
CKEDITOR.instances[instance].updateElement();
return true;
}
primero debe llamar a lo siguiente, para que los CKEDITOR actualicen sus campos relacionados.
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
asi que
HTML
<a onClick="CKupdate();$(''#article-form'').ajaxSubmit();">Submit</a>
y javascript
function CKupdate(){
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
}