[退出键盘/光标时检查输入字段的内容

问题描述 投票:0回答:1

我有一个系统生成的输入字段,期望它的值是数字且超过1,000。

这是该字段的HTML

<input type="text" name="fr_goal" id="fr_goal" value="" size="15" maxlength="15">

我已经在该JS上运行了它,几乎可以将我带到那里,但是我实际上无法确定该值是否大于或等于我所要求的最小值1000。

               $('#fr_goal').on('keyup', function(evt) {
                    $("#fr_goal").removeClass('don-active');
                    var value = evt.target.value;
                    if (value.length === 0) {
                        evt.target.className = 'invalid-amount';
                        return;
                    } 
                   else if ($.isNumeric(value) && value >= 1000) {
                        evt.target.className = 'valid-amount';

                    } 
                    else {
                        evt.target.className = 'invalid-amount';
                        $(this).val('');
                        $(this).attr('placeholder', 'VIP goal must be greater than $1,000');
                    }
                }); 

现在else if是我想要的结果,理想情况下,我知道它是数字并且超过1000。

但是正在发生的事情是,一旦我输入一个数字,它就会默认为其他情况,因为该数字小于1000。

有人知道该输入是否处于“活动”状态或正在使用中,以查看其中的内容吗?

理想情况下,我不必依靠表单提交来获取字段的内容,然后显示错误消息。我希望能够“实时”完成所有操作]

非常感谢您的帮助!

javascript jquery html
1个回答
0
投票

感谢卡尔文建议模糊。

我保留了原始问题的所有内容几乎完全相同,只是为了寻找数字而对else进行了调整。

一旦输入字段处于非活动状态,此函数将运行,并完美解决了我的问题。

$('#fr_goal').blur(function(eval) { 
                var userInput = eval.target.value;
                console.log("the inputted amount was" + userInput);
                if (userInput >= 1000) {
                    eval.target.className = 'valid-amount';
                }
                else {
                    eval.target.className = 'invalid-amount';
                    $(this).val('');
                    $(this).attr('placeholder', 'VIP goal must be greater than $1,000');
                }
            });
© www.soinside.com 2019 - 2024. All rights reserved.