簡體   English   中英

javascript函數檢索input [type = number]並根據值過濾它們

[英]javascript function retrieve input[type=number] and filter them based on the value

我有幾個數字類型的輸入字段,用戶必須填寫。我需要一個腳本,該腳本僅在用戶對這些字段具有至少一個非零值時才顯示新頁面。 因此,我需要一個函數來檢查至少一個類型編號輸入是否大於零。 下面是我在腳本中嘗試實現該條件頁面切換的函數(它調用了另一個有效的函數,此處未顯示)。 問題在於var filledValue。 返回未定義。 我希望它獲取原始值大於0的所有number類型的輸入元素,並返回該元素的id。 如果結果變量為非空,則繼續。

function NextTrial() {
var filledValue = $("input[type=number].val()>0", 
    "#page" + order[currentTrial]).id;
if (filledValue) {
    $("#page" + order[currentTrial]).hide();
    currentTrial++;
    ShowTrial(currentTrial);
} else {
    alert('Please answer the question before moving on!');
}
}

HTML的足夠摘錄是:

<div id="answercol1">
<p><big>Government:</big></p>

<div class="fieldEntry"><label for="gvt">federal (USA)</label>&nbsp;<input id="fedgvt" min="0" name="fedgvt" size="4" type="number" value="0"></div>

<div class="fieldEntry"><label for="gvt">state or local</label>&nbsp;<input id="stategvt" min="0" name="stategvt" size="4" type="number" value="0"></div>

<div class="fieldEntry"><label for="tribalgvt">tribal</label>&nbsp;<input id="tribalgvt" min="0" name="tribalgvt" type="number" value="0"></div>
</div>

我最終使用的功能是:

function NextTrial() {
var answers = 0;
$("input[type=number]").each(function(){
    if ($(this).val()>0) {
    answers++
    }
})
if (answers>0){  
    $("#page" + order[currentTrial]).hide();
        currentTrial++;
        ShowTrial(currentTrial);
    } else {
        alert('Please answer the question before moving on!');
    }
}

您的代碼無效,目前尚不清楚要實現的目標,我不確定那是否確實是您想要的目標,但是請嘗試以下操作:

function NextTrial() {
    //"#page" + order[currentTrial]).id; //Not sure what this line is used for
    var currentTrial = 0;

    $("input[type=number]").each(function(){
        if ($(this).val()>0) {
            $("#page" + order[currentTrial]).hide();
            currentTrial++;
            ShowTrial(currentTrial);
        } else {
            alert('Please answer the question before moving on!');
        }
    })
}

這將遍歷所有類型為number的字段,並檢查所有人的值是否>0

希望這可以幫助。

var ids = ['fedgvt', 'stategvt', 'tribalgvt'];
function GetValidInputs(inputIds){
  //ids to return
  var rets = [];
  //loop through given inputs
  inputIds.each(function(id){
    //get input value of each based on their id
    var val = ("#"+id).val() > 0;
    //ternary: if value is > 0 push it to array GetValidInputs returns
    //else do nothing
    val > 0 ? rets.push(val) : 0;
  };  
  //return desired ids
  return rets;
};
//call it and see if it works
GetValidInputs(ids);

如果我理解您的問題,上述類似的方法將起作用。 編輯:添加注釋以求清楚

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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