[英]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> <input id="fedgvt" min="0" name="fedgvt" size="4" type="number" value="0"></div>
<div class="fieldEntry"><label for="gvt">state or local</label> <input id="stategvt" min="0" name="stategvt" size="4" type="number" value="0"></div>
<div class="fieldEntry"><label for="tribalgvt">tribal</label> <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.