Estoy tratando de cambiar la acción del formulario en función del valor seleccionado en un menú desplegable.
Básicamente, el HTML se ve así:
<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 "personas" (que es la opción predeterminada), la acción debería ser "/ search / user", y si se selecciona el contenido, la acción debería ser "/ search / content"
Todavía estoy buscando, pero no he podido averiguar cómo hacerlo.
prop
lugar deattr
. Ejemplo =$("#search-form").prop ("action", "/search/" + action);
Si solo desea cambiar la acción del formulario, prefiero cambiar la acción en el formulario de envío, en lugar de en la entrada de cambio. Se dispara solo una vez.
fuente
Es mejor usar
más bien que
Entonces, según la respuesta de trante tenemos:
El uso
setAttribute
puede ahorrarle mucho tiempo potencialmente.fuente
setAttribute
ahorraría más tiempo usando jqueryattr
?Simple y fácil en javascipt
fuente
¿Se requiere que tenga un formulario?
Si no, entonces podría usar esto:
con el siguiente JavaScript:
fuente