javascript函数检索输入[type=number]并根据值对其进行过滤

javascript函数检索输入[type=number]并根据值对其进行过滤,javascript,jquery,Javascript,Jquery,我有几个数字类型的输入字段,用户必须填写。我需要一个脚本,将显示一个新的页面,只有当用户至少有一个非零值为这些字段。所以我需要一个函数来检查至少一个number类型的输入大于零。 下面是脚本中的函数,我编写该函数是为了尝试实现这个条件页面切换(它调用另一个可以工作的函数,我不在这里展示)。问题在于var filledValue。它返回undefined。我希望它能够获取所有的输入元素,这些元素的类型number的原始值大于0,并返回该元素的id。如果结果变量为非空,则继续 function Ne

我有几个数字类型的输入字段,用户必须填写。我需要一个脚本,将显示一个新的页面,只有当用户至少有一个非零值为这些字段。所以我需要一个函数来检查至少一个number类型的输入大于零。 下面是脚本中的函数,我编写该函数是为了尝试实现这个条件页面切换(它调用另一个可以工作的函数,我不在这里展示)。问题在于var filledValue。它返回undefined。我希望它能够获取所有的输入元素,这些元素的类型number的原始值大于0,并返回该元素的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() {
    //"#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);
如果我能理解你的问题,上面所说的方法就行了。
编辑:为清晰起见添加了注释

解决方案是否需要用jquery编写,或者是否可以使用其他内容?另外,为了澄清您的问题:您需要一个函数,该函数将在某些事件(如按钮单击)时被调用。函数将查看三个给定文本框的值,并返回与当前值大于0的输入相对应的id列表?
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);