143 votos

Javascript - formulario de cambio de acción basado en la selección?

Estoy tratando de cambiar la forma de acción basado en el valor seleccionado de un menú desplegable ...

Básicamente, el HTML se parece a esto:

 <form class="search-form" id="search-form" method="post" accept-charset="UTF-8" action="/search/user">
<select id="selectsearch" class="form-select" name="selectsearch">
<option value="people">Search people</option>
<option value="node">Search content</option>
</select>

<label>Enter your keywords: </label>
 <input type="text" class="form-text" value="" size="40" id="edit-keys" name="keys" maxlength="255" />

<input type="submit" class="form-submit" value="Search" id="edit-submit" name="search"/>
</form>
 

Si se selecciona "pueblo", (que es por defecto), la acción debe ser "/ search / usuario", y si se selecciona el contenido, la acción debe ser "/ búsqueda / contenido"

Todavía estoy buscando por ahí, pero no he sido capaz de averiguar cómo hacer esto ...

262voto

cletus Puntos 276888
$("#selectsearch").change(function() {
  var action = $(this).val() == "people" ? "user" : "content";
  $("#search-form").attr("action", "/search/" + action);
});

22voto

trante Puntos 3811

Si sólo desea cambiar la acción de forma, prefiero cambiar la acción en-presentar la forma, en lugar de en-entrada-cambio. Se dispara una sola vez.

 $('#search-form').submit(function(){
  var formAction = $("#selectsearch").val() == "people" ? "user" : "content";
  $("#search-form").attr("action", "/search/" + formAction);
}); 
 

-15voto

Dago Jobs Puntos 11

Se requiere contar con un formulario? Quiero decir .. es posible hacer esto ?:

 <body>
  <div>
      <input type="hidden" value="ServletParameter">
      <input type="button" id="callJavaServlet" onclick="callJavaServlet()"/>
    </div>
  </body
</html>
 

y

 function callJavaServlet(){
  this.form.action = "MyServlet";
  this.form.submit();
}
 

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: