Question

Sur mon FORM, pour une raison quelconque, je peux obtenir ma variable d'entrée de formulaire via onsubmit mais pas en utilisant action.

Cela fonctionne:

<form onsubmit="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

Cela ne fonctionne pas (this.city.value se trouve être nulle)

<form action="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

Pourquoi est-ce que onsubmit peut obtenir le this.city.value mais l'événement ne peut pas action?

Était-ce utile?

La solution

La balise d'action de forme ne fait pas référence à quoi que ce soit avec this

Au lieu de cela, utilisez un emplacement absolu

action="javascript:myFnc(document.getElementById('city-field').value)"

Autres conseils

Modifier : Merci au commentaire de Christoph, ci-dessous, j'ai réalisé mon grand contrôle. Voici la solution finale avec sa suggestion mise en œuvre.

<form action="" onsubmit="myFunc(this.city.value); return false;">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

Cela devrait faire ce que vous avez besoin. Je suis désolé de ne pas vous donner mon attention dans mes réponses précédentes.

formes

HTML sont utilisés pour l'envoi de données vers un script sur le serveur pour le traitement des données. Quand un formulaire est soumis, les données dans les champs de formulaire est transmis au serveur sous la forme de paires nom-valeur. scripts côté serveur, ce qui peut être écrit dans plusieurs langues différentes, sont utilisées pour traiter les données entrantes et retourner une nouvelle page HTML dans le navigateur. La page retournée au navigateur pourrait être quelque chose d'un message ou d'une liste de résultats de recherche générés à partir d'une requête de base de données « Nous vous remercions de l'enregistrement ».

puisque la forme est pour l'envoi de données vers un autre fichier sur le serveur. en action, nous ne pouvons spécifier le chemin que nous devons envoyer les données. donc il vous ne pouvez pas obtenir les valeurs que la forme est d'avoir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top