J'essaie de changer l'action du formulaire en fonction de la valeur sélectionnée dans un menu déroulant.
En gros, le HTML ressemble à ceci:
<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 "personnes" est sélectionné (ce qui est le cas par défaut), l'action doit être "/ search / user", et si le contenu est sélectionné, l'action doit être "/ search / content"
Je cherche toujours autour de moi, mais je n'ai pas été en mesure de savoir comment faire.
prop
place deattr
. Exemple =$("#search-form").prop ("action", "/search/" + action);
Si vous souhaitez uniquement modifier l'action du formulaire, je préfère modifier l'action lors de la soumission du formulaire plutôt que lors de la modification de l'entrée. Il ne se déclenche qu'une seule fois.
la source
Il vaut mieux utiliser
plutôt que
Donc, sur la base de la réponse de trante, nous avons:
L'utilisation
setAttribute
peut vous faire gagner beaucoup de temps potentiellement.la source
setAttribute
temps en utilisant jqueryattr
?Simple et facile dans javascipt
la source
Faut-il avoir un formulaire?
Sinon, vous pouvez utiliser ceci:
avec le JavaScript suivant:
la source