J'ai hérité d'un projet, qui fournit un formulaire de commande à un client.Impossible de sélectionner le formulaire avec jquery
Le formulaire de commande est un tableau, et l'ajout au panier est (destiné à être!) Géré avec jQuery.
code je dois travailler avec ressemble à quelque chose comme ceci:
<table>
<form id="prod1" method="post" action="">
<tr>
<td>Prod Name</td><td><input type="text" name="prod1qty" id="prod1qty" /></td><td><input type="button" id="prod1add" /></td>
<tr>
</form>
<form id="prod2" method="post" action="">
<tr>
<td>Prod Name</td><td><input type="text" name="prod2qty" id="prod2qty" /></td><td><input type="button" id="prod2add" /></td>
<tr>
</form>
<form id="prod3" method="post" action="">
<tr>
<td>Prod Name</td><td><input type="text" name="prod3qty" id="prod3qty" /></td><td><input type="button" id="prod3add" /></td>
<tr>
</form>
</table>
Je suis en train de tout sélectionner le type d'entrée = « button » éléments dans les formulaires avec départ de id « la prod » avec jQuery je peux donner les fonction de clic ...
$("form[id^='prod'] :input[type='button']").click(function(){
console.log(this);
});
Mais son échec ... J'ai essayé de voir si elle a atteint l'élément en remplaçant .cliquez() avec Css (« frontière », « rouge 1px solid ») mais il ne le ramassait pas.
Je remarquai alors dans Firebug que le <form>
a été grisés et fermé sur la même ligne, à savoir:
<form id="prod1" method="post" action="" />
<tr>
<td>Prod Name</td><td><input type="text" name="prod1qty" id="prod1qty" /></td><td><input type="button" id="prod1add" /></td>
<tr>
<form id="prod2" method="post" action="" />
<tr>
<td>Prod Name</td><td><input type="text" name="prod2qty" id="prod2qty" /></td><td><input type="button" id="prod2add" /></td>
<tr>
Il semble que le code est valide HTML (le mettre dans le validateur), donc Pourquoi cela arrive-t-il?
Merci! Josh
Vous avez tord. Ce n'est pas un HTML valide. Les éléments de formulaire ne peuvent pas être des éléments enfants pour les tables ou les éléments parents des lignes de table. – Quentin
Ah, d'accord. Il suffit de se débarrasser des formes, a donné à 'tr' l'id que la' forme' avait l'habitude d'avoir, changé 'form' en' tr' dans le sélecteur et son fonctionnement. Merci! Je suppose que le validateur ne vérifie que la syntaxe valide et non la validité de la structure. – Josh