Входное значение jQuery проверить длину и значение? - PullRequest
0 голосов
/ 04 ноября 2019

Я все еще застрял здесь при проверке значения ввода. Если значение находится между 0.4 и 0.9, вход n2 удалит только чтение. С другой стороны, если значение меньше 0.4 или больше 0.9, появится модальное диалоговое окно. Мой вопрос здесь состоит в том, чтобы проверить значение / длину, если значение, введенное пользователем, не в десятичном значении? скажем, пользователь вставил значение 1, тогда мой jquery не будет запускаться, потому что моя длина равна >=3 .. если я поставлю проверку длины > 1, то когда пользователь введет десятичное значение, например 0.5, появится модальное диалоговое окно. будет выдаваться 3 раза .., поскольку мое значение длины равно >= 3 .. Если я уберу проверку длины, он будет продолжать появляться в модальном диалоговом окне всякий раз, когда пользователь вводит значение длины, превышающее единицу. Мой вопрос заключается в том, как контролировать такую ​​ситуацию, если допустимое значение диапазона находится в диапазоне от 0.4 до 0.9, и в то же время можно проверить значение, которое не в десятичном числе? Возможно ли это?

<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();
                }
            }


            });
        });

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Использование 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();
            }
        }


        });
    });
0 голосов
/ 04 ноября 2019

Вы могли бы рассмотреть запуск вашего кода на blur(). Когда пользователь фокусируется вне поля ввода, вы можете проверить, является ли введенное значение правильным или нет.

Более того, Карстен сказал, что это правда: используйте type=number для ввода, и вам не понадобится проверка длины ввода, только на значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...