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