输入值jQuery检查长度和值?

在验证输入值时,我仍然停留在这里。如果该值在0.40.9之间,则输入n2将删除只读。另一方面,如果值小于0.4或大于0.9,则会显示模式对话框。我的问题是如果用户输入的值不是十进制值,则要验证值/长度?假设用户插入值1,然后是我的jquery 不会触发,因为我的长度是>=3 ..如果我把长度检查放在> 1上,那么当用户键入十进制值(例如0.5)时,模式对话框 将会弹出3次。.由于我的长度值为>= 3 ..如果我取消了长度检查,只要用户键入的值长度超过一个,它就会一直弹出模态对话框。 我的问题是,如果有效范围值介于0.40.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();
                }
            }


            });
        });
c68654626 回答:输入值jQuery检查长度和值?

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


        });
    });
,

您可以考虑在blur()上触发代码。当用户将焦点放在输入框之外时,可以检查输入的值是否正确。

此外,卡斯滕(Carsten)说的是正确的:使用type=number作为输入,您将不需要检查输入长度,只需检查值即可。

本文链接:https://www.f2er.com/3168490.html

大家都在问