簡體   English   中英

JS輸入文本將值轉換為整數/數字/數字以進行比較

[英]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條件存在一些問題:

  1. val()的結果是一個字符串,而您似乎期望使用數字。 您可以通過在其前面加上+來將其轉換為數字。 盡管您在console.log執行了該操作,但是您根本不會使用該結果。
  2. 負數( ! )僅適用於該值,不適用於整個<=表達式,因為! 優先於<= 因此,您應該使用方括號來賦予<=優先級,或者應該使用>來代替! 操作員。

這是更正的相同代碼:

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM