11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'arrive pas à récupérer la valeur d'un champ d'un formulaire précis.

Merci de votre aide

J'ai plusieurs formulaires comme celui ci sur la même page
il me fait bien autant d'alerte que de formulaire mais country reste toujours à undefined
Html
<form action='Controller/PdfController.php' name="email_form_country" method="POST">
    <tr class="edit">
            <td class="col_code_flag">
              <img class="color_badge flag" src="http://88.888.888.888/w/d/3/b.png"/> 
            </td>
            <td class="col_Name">
              <input type="text" value="default object pdf" size="1" name="object"/>
              <input type="hidden" value="26" name="idEmail"/>
              <input type="hidden" value="1" name="type"/>
              <input type="hidden" value="1" name="update_country"/>
            </td>
            <td>
              <textarea  rows="1" name="body" class="form-control">default message pdf</textarea>
            </td>
    </tr>
</form>


Javascript
 $('form[name="email_form_country"]').parent().children('.edit').each(function(){
            var country = $('form[name="email_form_country"]').children().next().children('input[name="update_country"]').val();
            alert(country);
});

Modifié par neka (16 Dec 2014 - 17:47)
salut sans chercher pls loin pour l'instant...

tu cherches dans ton js le name=updatecountry
mais ton champ a pour name : update_country
je pense que la différence te sautes tout de suite aux yeux Smiley cligne
En effet c'est une grossière erreur de ma part mais ça reste toujours à undefined
Merci pour la 1ere piste

J'ai essayé ca aussi, il me fait bien autant d'alerte que de formulaire mais reste toujours à undefined
 $('form[name="email_form_country"]').parent().children('.edit').each(function(){
            var country =  $('form[name="email_form_country"]').find('input[name="update_country"]').val();
            alert(country);
        });

Modifié par neka (16 Dec 2014 - 17:47)
Il faut remplacer $('form[name="email_form_country"]') pas $(this) dans la fonction

 $('form[name="email_form_country"]').parent().children('.edit').each(function(){
            var country = $(this).children().next().children('input[name="update_country"]').val();
            alert(country);
});
Modérateur
Au passage tes chaines d'appel jQuery semble extrêmement trop complexes. Puis j'ai compris que c'est parce que ton HTML est mal formé (ce qui te posera des problèmes par ailleurs:

<tr> ne peut pas être un enfant de <form>.

Ton code sera traduit ainsi dans ton DOM:


    <form action='Controller/PdfController.php' name="email_form_country" method="POST"></form>
    <tr class="edit">
            <td class="col_code_flag">
              <img class="color_badge flag" src="http://88.888.888.888/w/d/3/b.png"/> 
            </td>
            <td class="col_Name">
              <input type="text" value="default object pdf" size="1" name="object"/>
              <input type="hidden" value="26" name="idEmail"/>
              <input type="hidden" value="1" name="type"/>
              <input type="hidden" value="1" name="update_country"/>
            </td>
            <td>
              <textarea  rows="1" name="body" class="form-control">default message pdf</textarea>
            </td>
    </tr>

ce qui t'oblige à faire des .parent() inutiles sur un <form> inutile et invalide à cet endroit
on est bien d'accord mais des fois on a pas la main sur le html Smiley cligne

Merci pour ce retour
Modifié par neka (17 Dec 2014 - 09:28)