2010-09-12 6 views
2

J'ai ce code mais il ne fonctionne pas sur mon localhost et je ne sais pas pourquoi. Quelqu'un peut-il nous éclairer à ce sujet?Jquery changer la valeur du champ de formulaire caché

(Script est dans la tête et l'autre code est dans le corps)

<script type="text/javascript"> 
$(function(){ 
$(input[name='jsenabled']).val('1'); 

}); 
</script> 



<input type="hidden" name="jsenabled" value="0" /> 
    <label for="signup-email">Sign up for email offers, news &amp; events:</label> 
    <input type="text" name="signup-email" id="signup-email" /> 
    <input type="submit" id="signup-button" value="Sign Me Up!" /> 
    <p id="signup-response"></p> 
</fieldset> 

ÉDITÉE chose étrange est que j'ai ajouté ce code pour vérifier si la valeur a été modifiée et il ne se déclenche une alerte , mais firebug n'enregistre pas la modification.

$("input[name='jsenabled']").val("1"); 
    if($("input[name='jsenabled']").val = '1') { 
    alert('frf'); 
    } 
+0

Vous pouvez mettre en forme le code source avec le bouton de la barre d'outils '0101001'. Je l'ai fait pour toi cette fois. –

Répondre

3

Essayez $("input[name='jsenabled']").val('1'); Faites attention à guillemets doubles je.

Voir d'autres numéros dans les réponses de Nick et Alvaro.

3

Vous devez guillemets autour du sélecteur, comme ceci:

$(function(){ 
    $("input[name='jsenabled']").val('1'); 
}); 

également lors de la vérification de la valeur, utilisez les parenthèses, comme ceci:

if($("input[name='jsenabled']").val() == '1') { 
    alert('frf'); 
} 

.val() est une fonction, et appelé sans arguments obtient la valeur. Sur une note plus large, faites attention à la console, comme Firebug devrait lancer vos erreurs JavaScript ici pour chacun d'entre eux, la console (qui montre des erreurs) est votre meilleure ressource ici.

10
  1. sélecteurs de jQuery sont des chaînes: ils doivent être cités

  2. jQuery.val() est une méthode, pas une propriété. Ne pas oublier les parenthèses.

  3. L'opérateur de comparaison est == et non =.

Vous devez être plus prudent avec votre syntaxe.

1

Can u essayer ce général $('input[name="jsenabled"]').val('1');

0

est juste Álvaro, mais même avec la bonne syntaxe vous ne seriez pas en mesure de changer la valeur des champs cachés, bien que jQuery les voit en lecture seule, si je reconnais bien.

J'avais rencontré ce problème pour moi-même il y a quelques semaines, ma solution est une entrée normale avec la classe css « cachée »

.hidden { 
    display: none; 
} 

après, vous pouvez simplement changer la valeur du champ caché :

jQuery('#field_id.hidden').val('new_field_value'); 
+0

Je ne sais pas comment bien le mot ... c'est une information complètement incorrecte, vous pouvez changer un champ caché avec '.val()' comme toute autre entrée. –

+1

Oh, je ne suis pas offensé du tout. Je l'ai re-vérifié et vous avez raison, doit avoir mis ensemble avec des champs de saisie désactivés. Sry, la prochaine fois que je réponds sans gueule de bois. – acid

+0

C'est une mauvaise réponse, vous pouvez changer un champ caché et déclencher l'événement onChange $ ("# hiddenId"). Val ("nouvelle valeur"). Change(); – Vackup

Questions connexes