javascript - internet - jquery support
jQuery form submit() no funciona en IE6? (8)
Podrías probar $("#formid").trigger("submit")
, aunque dudo que te dé un resultado diferente.
Quiero enviar un usando jquery como abajo;
$("#formid").submit();
Funciona perfecto en todos los navegadores, excepto IE6.
¿Cómo hacer que funcione en IE6?
No te olvides de devolver falso; si estás en una etiqueta
Tuve un problema similar cuando estaba a punto de enviar el formulario a través de un elemento A. Establecí el atributo href en "javascript :;" para permitir que el script jQuery principal maneje el envío real, pero simplemente no funcionaría en IE6.
Guión principal de jQuery:
$(".submitLink").click(function(){
$(this).parent()[0].submit();
$(this).addClass("loading");
});
Mi solución fue cambiar el atributo href de "javascript :;" a "#".
Probablemente tenga un <input name="submit" />
en algún lugar de su formulario, que sobrescribe la función "submit" del formulario en IE.
Editar:
He probado en otros navegadores. Las últimas versiones de todos los principales navegadores parecen verse afectadas por este problema.
- IE - todas las versiones
- Firefox 4+
- Chrome al menos desde la versión 12
- Opera al menos desde la versión 11
En pocas palabras: nunca nombre sus entradas "enviar", o cualquier otra propiedad o método predeterminado del elemento del formulario (por ejemplo, "acción" o "restablecer"). Ver MDC para una descripción completa.
Recientemente tuve un problema similar, cuando estaba creando una "pseudo-forma" dentro de un formulario de servidor ASP.NET (por lo que no podía usar otra etiqueta de formulario), que quería publicar en otro dominio sin necesidad de escribir código del lado del servidor para hacer la publicación remota. Respuesta fácil: crea un formulario sobre la marcha y preséntalo. Funciona en buenos navegadores ...
Después de algunas pruebas y tribulaciones, me di cuenta de que IE no funcionará como se esperaba (qué sorpresa) a menos que el formulario que se está enviando se haya agregado a DOM. Entonces, esta fue mi solución. Espero que ayude a algunos de ustedes. Tenga en cuenta que todas mis entradas y mi envío estaban en el mismo contenedor. ".post-to" es una entrada oculta con la URL.
$(".post-form").click(function(ev) {
var postto = $(this).siblings(".post-to").val();
var form = document.createElement("form")
$(form).attr("id", "reg-form").attr("name", "reg-form").attr("action", postto).attr("method", "post").attr("enctype", "multipart/form-data");
$(this).siblings("input:text").each(function() {
$(form).append($(this).clone());
});
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
return false;
});
Eventualmente, funciona como un regalo.
Solo agrega un
window.setTimeout(function(){
$("#formid").submit();
}, 300);
Agregue un button
en su formulario con type="submit"
...
$(''.bt_ok'').bind(''click'', function() {
$(''#form_autosuggest'').submit();
return false;
});
...
Agregar después: return false;
para IE6