Je suis toujours coincé ici lors de la validation de la valeur de l'entrée. Si la valeur est comprise entre 0.4 et 0.9, l'entrée n2 supprimera la lecture seule. D'un autre côté, si une valeur inférieure à 0.4 ou supérieure à 0.9, elle affichera une boîte de dialogue modale. Ma question ici est de valider la valeur / longueur si la valeur saisie par l'utilisateur n'est pas en valeur décimale? disons que l'utilisateur insère la valeur 1, puis mon jquery ne se déclenche pas parce que ma longueur est >=3 .. si je mets la vérification de longueur > 1, puis lorsque l'utilisateur saisit la valeur décimale par exemple 0.5, la boîte de dialogue modale apparaîtra 3 fois .. étant donné que ma valeur de longueur est >= 3 .. si je supprime la vérification de la longueur, la boîte de dialogue modale continuera à apparaître chaque fois que l'utilisateur saisira la longueur de la valeur plus d'une. Ma question est de savoir comment contrôler une telle situation si la valeur de plage valide se situe entre 0.4 à 0.9, en même temps peut-on vérifier une valeur qui n'est pas en nombre décimal également? C'est possible?

<input type="text" class="form-control input-sm da" name="da" id="da" value="" autocomplete="off" />

<div class="form-group actionDiv" style="display:none">
<label for="cdaaction">Action </label>
<input type="text" class="form-control input-sm cdaaction" name="cdaaction" id="cdaaction" value="" />
</div>

<input type="text" class="form-control input-sm n2" name="n2" id="n2" value="" autocomplete="off" readonly />

$(document).ready(function() {
            $(".da").keyup(function() {
            var dInput = $(this).val();

            if ($('.da').val().length >= 3) 
            {
                if(dInput < 0.4 || dInput > 0.9)
                {
                    var mymodal = $('#mi-modal');
                    mymodal.find('.modal-body').html('Is the value correct: '+ $('.da').val() +'  ?');
                    mymodal.find('.modal-footer').html('<button type="button" class="btn btn-default" id="modal-btn-si">Yes</button><button type="button" class="btn btn-primary" id="modal-btn-no">No</button>');
                    $("#mi-modal").modal('show');

                    $("#modal-btn-si").on("click", function(){
                    $("#mi-modal").modal('hide');
                    $('.actionDiv').show();
                    });

                    $("#modal-btn-no").on("click", function(){
                    $("#mi-modal").modal('hide');
                    $('.actionDiv').hide();
                    $("#da").focus();
                    });
                    $(".n2").attr('readonly', true);

                }
                else
                {
                    $(".n2").removeAttr("readonly");
                    $('.actionDiv').hide();
                }
            }


            });
        });
0
parkway 4 nov. 2019 à 10:28

2 réponses

Vous pourriez envisager de déclencher votre code sur blur(). Lorsque l'utilisateur se concentre hors de la zone de saisie, vous pouvez vérifier si la valeur entrée est correcte ou non.

De plus, ce que Carsten a dit est vrai: utilisez type=number pour votre entrée et vous n'aurez pas besoin de vérifier la longueur d'entrée, juste la valeur.

0
Adrian - Reinstate Monica 4 nov. 2019 à 12:50

Utilisez parseFloat()

$(document).ready(function() {
        $(".da").keyup(function() {
        //var dInput = $(this).val();

        var val = parseFloat($(this).val());


            if (!isNaN(val) && (val < 0.4 || val > 0.9))
            //if(dInput < 0.4 || dInput > 0.9)
            {
                var mymodal = $('#mi-modal');
                mymodal.find('.modal-body').html('Is the value correct: '+ $('.da').val() +'  ?');
                mymodal.find('.modal-footer').html('<button type="button" class="btn btn-default" id="modal-btn-si">Yes</button><button type="button" class="btn btn-primary" id="modal-btn-no">No</button>');
                $("#mi-modal").modal('show');

                $("#modal-btn-si").on("click", function(){
                $("#mi-modal").modal('hide');
                $('.actionDiv').show();
                });

                $("#modal-btn-no").on("click", function(){
                $("#mi-modal").modal('hide');
                $('.actionDiv').hide();
                $("#da").focus();
                });
                $(".n2").attr('readonly', true);

            }
            else
            {
                $(".n2").removeAttr("readonly");
                $('.actionDiv').hide();
            }
        }


        });
    });
1
Yihsiu 4 nov. 2019 à 07:49