10
votes

Réinitialiser tous les déposés Sélectionner

J'ai une fonction qui est appelée par Onbeforeunload. Dans je souhaite réinitialiser toutes les déposées mais je ne trouve pas la bonne méthode pour les réinitialiser à la valeur 0.

<head>
    <script type="text/javascript">
        function displaymessage() {
            document.getElementsByTagName('select').value = 1;
            //or
            document.getElementsByTagName('select').options.length = 0;
        }
    </script>
</head>

<body>
    <form>
        <input type="button" value="Click me!" onclick="displaymessage()" />
    </form>

    <select name="data[Rate][15][12][num_rooms]" id="r15ro12">
        <option value="0">0</option><option value="1">1 Rooms</option>
        <option value="2">2 Rooms</option><option value="3">3 Rooms</option><option value="4">4 Rooms</option>
        <option value="5">5 Rooms</option><option value="6">6 Rooms</option><option value="7">7 Rooms</option>
        <option value="8">8 Rooms</option><option value="9">9 Rooms</option>
    </select>

    <select name="data[Rate][15][12][num_rooms]" id="r15ro12">
        <option value="0">0</option><option value="1">1 Rooms</option>
        <option value="2">2 Rooms</option><option value="3">3 Rooms</option><option value="4">4 Rooms</option>
        <option value="5">5 Rooms</option><option value="6">6 Rooms</option><option value="7">7 Rooms</option>
        <option value="8">8 Rooms</option><option value="9">9 Rooms</option>
    </select>
</body>
</html>


3 commentaires

Vous ne devez pas avoir plus d'un élément avec le même nom nom ou ID comme # r15ro12 et tous vos éléments de formulaire ( entrée , Sélectionnez etc.) doit être à l'intérieur du formulaire .


Je viens de faire une copie rapide et coller par exemple, je ne l'ai pas dans mon code, merci pour les commentaires, acclamations


OK, c'est bien! Vous vous demandez également pourquoi on voudrait réinitialiser les sélections sur décharger ? (en supposant que vous fermez une fenêtre contextuelle)


10 Réponses :


1
votes

Essayez ceci:

function displaymessage() {
    $("select").val("0");
}


0 commentaires

3
votes

Que diriez-vous de quelque chose comme: xxx


0 commentaires

26
votes
function displaymessage() {
    $("select").each(function() { this.selectedIndex = 0 });
}
this selects the first option (not necessarily having value = 0)

3 commentaires

Merci Fabrizio pour l'aide, mais cela n'a pas fonctionné, ça me dirige.


Keith, au-dessus du code ne fonctionnera que si vous avez inclus la bibliothèque JQuery.


Merci, j'avais inclus mais une ancienne version, fonctionne bien maintenant. Tchin Tchin



2
votes

avec code JavaScript brut, nous pouvons faire ce qui suit, xxx


0 commentaires

8
votes

voilà un moyen de sélectionner la première option dans tous les Sélectionnez S à l'aide de JavaScript natif; xxx

... mais jQuery est très pratique et fait la plupart des choses beaucoup plus facile.


0 commentaires

1
votes

Tout d'abord, vous ne devez pas utiliser le même nom / ID pour la variation différente. Il devrait être unique pour chaque étiquette.

dans la balise appelez la fonction comme,

puis altérer votre amusement comme Affichage de la fonctionMessage () { var x = document.getelementsByTagname ("Sélectionnez"); pour (var i = 0; i <2; i ++) { document.getElementyID (x [i] .Id) .OPTIONS [0] .Sélectionné = "0"; } }


0 commentaires

0
votes

Essayez ceci:

$( 'select' ).each( function () {
    if ( $( this ).children().length > 0 ) {
        $( $( this ).children()[0] ).attr( 'selected', 'selected' );
    }
} );


0 commentaires

1
votes

Encore une autre façon xxx

démo


0 commentaires

1
votes

Les solutions de jQuery que j'ai vues jusqu'à présent ne prennent pas en compte pour supprimer l'attribut précédent sélectionnée si on existe, alors je pense que cette étape supplémentaire est requise: xxx

Cette solution ne conserve que un attribut sélectionné dans la première option et supprime tous les autres (le cas échéant).


0 commentaires

0
votes

$ ('# dropdownlistid'). val ("");

ou

$ ('# dropdownlistid'). Val ("0");


0 commentaires