[英]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.