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

javascript - Comment js détermine-t-il que la valeur d'entrée est un nombre non inférieur ou égal à 0, sans utiliser d'alerte, mais en utilisant une police rouge sur la même ligne pour inviter l'utilisateur

Comment js détermine-t-il que la valeur d'entrée est un nombre, ni inférieur ni égal à 0, et peut être une valeur décimale. Si vous n'êtes pas éligible, 在%后面以红色字提示用户, TKS !

世界只因有你世界只因有你2671 Il y a quelques jours1392

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

  • 三叔

    三叔2017-06-28 09:29:53

    Déterminez si le focus est dans l'entrée (ou transmettez l'événement focus exit)
    Ensuite, transmettez la valeur à la classe de méthode js pour jugement en fonction de vos besoins

    .

    répondre
    0
  • 天蓬老师

    天蓬老师2017-06-28 09:29:53

    document.getElementById('ratio').onchange = function(){
        var val = this.value;
        if( val * 1 == NaN || val <= 0 )
        return false; //报错
        
        //正确代码
    };
    
    document.getElementById('ratio').onkeyup = function(){}; //也行
    

    répondre
    1
  • ringa_lee

    ringa_lee2017-06-28 09:29:53

    CSS:

    .red_border {
        border: 1px solid red; // 红框样式
    }
    
    .red_text {
        color: red; // 红色提示文字样式
    }

    HTML:

    <td class="form-inline">
        <input type="text" class="form-control" name="post[post_ratio]" id="ratio" required value="" />&nbsp;&nbsp; %
        <span class="red_text"></span>
    </td>

    Javascript:

    document.getElementById('ratio').onchange = function() {
        var val = this.value;
        var tip = this.getElementsByClassName('red_text')[0];
    
        if(isNaN(+val) || (!isNaN(+val) && +val <= 0)) {
            // 错误
            this.className = 'red_border';
            tip.innerHTML = '出现错误';
        } else {
            this.className = '';
            tip.innerHTML = '';
        }
    };

    répondre
    0
  • 世界只因有你

    世界只因有你2017-06-28 09:29:53

    Réponse courte pour les téléphones mobiles, ajoutez l'attribut pattern à l'entrée, utilisez la régularité pour vérifier le contenu, puis utilisez input:invalid dans le CSS pour marquer le contenu irrégulier dans l'entrée en rouge (juste une case rouge avec du texte rouge ou quelque chose du genre) , et le texte rouge à la fin invitera à écrire p immédiatement après la saisie. Utilisez ensuite

    .
    p {display:none;color:red;}
    input:invalid+p {display:block;}

    Après avoir mis en place de telles règles, cela devrait être presque pareil (si l'étiquette est remplacée par l'identifiant, je n'aurai plus à coder sur mon téléphone). Cependant, si vous devez être compatible avec IE9, vous devrez peut-être en écrire un autre compatible...


    Référence :

    MDN - Validation du formulaire

    répondre
    0
  • Annulerrépondre