2010-09-29 17 views
20
desplegable

tengo esta forma en mi html:jQuery: enviar el formulario después de que un valor está seleccionado de

<form action="/awe/ChangeTheme/Change" method="post"> 

    <select id="themes" name="themes"> 
    ... 
    <option value="blitzer">blitzer</option> 
    </select> 

    <input type="submit" value="change" /> 

    </form> 

nadie sabe cómo presentar cuando se selecciona un valor en el menú desplegable los 'temas'?

Respuesta

60

Las otras soluciones se someten todas formas en la página, si hubiera alguna. Mejor sería:

$(function() { 
    $('#themes').change(function() { 
     this.form.submit(); 
    }); 
}); 
+1

Si tiene múltiples formularios, sería aún mejor si reemplaza la tercera línea con: $ (this) .parent ('form'). Submit(); –

+8

@PeterdeRidder 'this.form' ya hace eso y más, porque' $ (this) .parent ('form') 'solo funciona si el formulario es el padre directo de la selección, que a menudo no lo es. – RoToRa

1
$(function() { 
    $('#themes').change(function() { 
     $('form').submit(); 
    }); 
}); 
+1

Estas soluciones presentarán todas las formas en la página ... – bato3

3
$('#themes').change(function(){ 
    $('form').submit(); 
}); 
+0

Estas soluciones presentarán todas las formas en la página .. – bato3

2

le recomiendo usar el método de escritura a mano se unen, ya que tiene el mismo efecto que la taquigrafía suministrada por las otras respuestas, pero puede agregar eventos adicionales si es necesario sin tener que cambiar su código.

$("#themes").bind("change", function() { 
    $("form").trigger("submit"); 
}); 
+0

Estas soluciones enviarán todos los formularios en la página ... – bato3

4

En caso de que su HTML contiene más de una forma

$(function() { 
    $('#themes').on('change', function(e) { 
    $(this).closest('form') 
      .trigger('submit') 
    }) 
}) 
Cuestiones relacionadas