[英]JS Input text convert value to integer/number/numeric for comparison
不能以任何方式将输入文本的值转换为数字! 尝试过JS Number(input.val())还parseInt(input.val(),10)一元+ input.val()...如果小于或等于,我需要输入通过条件语句进行比较。
有人问,我需要输入字段为文本类型,因为Im使用了插件jquery旋钮。 知道输入类型的编号。
真心感激任何抬头..不可能是没有办法强迫这种转换。
**更新** Myabe我忘记添加的内容是我在遍历具有相同类的输入,然后使用this.val()作为我已经解决的问题,我已经阅读但仍然不明白为什么读取元素必须使用其#id进行调用。 在我的情况下无法做到这一点。 在这里摆弄
$('.hello').each(function () {
var temp = $(this).val();
console.log(+temp + " , " + parseInt(temp, 10) + " , " + temp +" , "+Number(temp)+" ,"+$(this).val());
if (!$(this).val() <= 1) {
$(this).val(--temp).trigger('change');
}
});
您提供的小提琴有这个if
条件:
var temp = $(this).val();
if (!$(this).val() <= 1) {
$(this).val(--temp).trigger('change');
}
实际上,此代码会减少输入中的值。 但这几乎是“意外”的结果。
if
条件存在一些问题:
val()
的结果是一个字符串,而您似乎期望使用数字。 您可以通过在其前面加上+
来将其转换为数字。 尽管您在console.log
执行了该操作,但是您根本不会使用该结果。 !
)仅适用于该值,不适用于整个<=
表达式,因为!
优先于<=
。 因此,您应该使用方括号来赋予<=
优先级,或者应该使用>
来代替!
操作员。 这是更正的相同代码:
var temp = +$(this).val();
if (temp > 1) {
$(this).val(--temp).trigger('change');
}
该代码的效果是相同的:所有值都递减,因为您输入的值都大于1(20、30、40、50)。
您正在使用Jquery吗? 您不需要显式转换:
if($("#inp").val() > 5){
alert("Greater than 5");
}else{
alert("Less than 5");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.