我有一个系统生成的输入字段,期望它的值是数字且超过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。
有人知道该输入是否处于“活动”状态或正在使用中,以查看其中的内容吗?
理想情况下,我不必依靠表单提交来获取字段的内容,然后显示错误消息。我希望能够“实时”完成所有操作]
非常感谢您的帮助!
感谢卡尔文建议模糊。
我保留了原始问题的所有内容几乎完全相同,只是为了寻找数字而对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');
}
});