recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Il y a deux pressions sur une touche sous le même fichier jquery, et les deux sont déclenchées lorsque vous appuyez sur Entrée.

J'ai conçu une petite application d'une seule page, un mini salon de discussion.

Dès que vous entrez, il y a un écran noir, puis il y a un petit panneau où vous devez entrer votre nom. Il y a un bouton à côté pour confirmer (la première pression sur la touche Après confirmation, l'écran noir et). le panneau disparaît et vous entrez dans la page.
La page est une salle de discussion, qui se déclenche en appuyant sur Entrée pour envoyer un message (la deuxième pression sur une touche).

Le problème maintenant est que lorsque vous entrez dans le panneau de nom, appuyer sur Entrée déclenchera les deux touches ci-dessus en même temps. Mais les sélecteurs liés à mes deux touches sont différents.

P.S. En HTML, le type des deux boutons est bouton.

S'il vous plaît, donnez-moi une grande réponse, merci beaucoup.

Code :

//get username
    function getUsername(){
        blackScreen.fadeOut("slow");
        return $("#input-username").val();
    }
    okay.click(getUsername);
    //send msg to database by enter
    formUsername.keypress(function(event) {
        if(event.keyCode === 13) {
            event.preventDefault();
            okay.trigger("click");
        }
    });
    
    //get time
    function getTime() {
        var mydate = new Date();
        var year = mydate.getFullYear();
        var month = mydate.getMonth() + 1;
        var day = mydate.getDate();
        var hour = mydate.getHours();
        var minute = mydate.getMinutes();
        var second = mydate.getSeconds();
        //standardize time
        function stdTime(s) {
            if(s < 10) {
                return "0" + s;
            } else {
                return s;
            }
        };
        return year + "/" + stdTime(month) + "/" + stdTime(day) + " " + stdTime(hour) + ":" + stdTime(minute) + ":" + stdTime(second);
    }

    //send msg to database by click
    inputBtn.click(function() {

        var inputMsg = $("#input-value").val();

        //push msg to database
        msgs.push({
            "name": getUsername(),
            "time": getTime(),
            "msg": inputMsg
        });
        $("#input-value").val("");

    });

    //send msg to database by enter
    inputForm.keypress(function(event) {
        if(event.keyCode === 13) {
            event.preventDefault();
            inputBtn.trigger("click");
        }
    });

Ajoutez le code pour les deux parties boutons du HTML :

<p class="chat-room-input">
                        <form class="form-inline form-input">
                            <p class="form-group">
                                <input type="text" class="form-control" id="input-value" placeholder="来一起吐槽~" maxlength="80">
                                <button type="button" class="btn btn-default" id="input-send">
                                    <span class="glyphicon glyphicon-send" aria-hidden="true"></span>
                                </button>
                            </p>
                        </form>
                    </p>


<p class="alert alert-warning alert-dismissible" role="alert">
                        <form class="form-inline form-username">
                            <p class="form-group">
                                <input type="text" class="form-control" id="input-username" placeholder="骚年!留下大名!" maxlength="10" autofocus="autofocus">
                                <button type="button" class="btn btn-default okay">OK</button>
                            </p>
                        </form>
                    </p>
漂亮男人漂亮男人2785 Il y a quelques jours802

répondre à tous(2)je répondrai

  • 高洛峰

    高洛峰2017-06-26 10:52:28

     formUsername.keypress(function(event) {
         event.stopPropagation();  //防止事件冒泡
            if(event.keyCode === 13) {
                event.preventDefault();
                okay.trigger("click");
            }
        });
          inputForm.keypress(function(event) {
           event.stopPropagation();//防止事件冒泡
            if(event.keyCode === 13) {
                event.preventDefault();
                inputBtn.trigger("click");
            }
        });

    répondre
    0
  • 迷茫

    迷茫2017-06-26 10:52:28

    formUsername.keypress(function(event) {
            if(event.keyCode === 13) {
                event.preventDefault();
                okay.trigger("click");
            }
            event.stopImmediatePropagation();
        });

    OK, merci pour votre réponse.

    répondre
    0
  • Annulerrépondre