在单选按钮上使用过滤器时,我得到一个错误,指出.filter不是一个函数。据我所知,按名称选择单选按钮将返回一个数组,我应该能够对一个数组使用filter。
任何帮助都将不胜感激。
<form action="" name='myForm'>
<p>Select the Beach</p>
<input type="checkbox" value='miami' id='miami' name='check'>
<label for="miami">Miami</label>
<br>
<input type="checkbox" value='florida' id='florida' name='check'>
<label for="florida">Florida</label>
<br>
<input type="checkbox" value='jamaica' id='jamaica' name='check'>
<label for="jamaica">Jamaica</label>
<p>Select the Airline</p>
<input type="radio" value='american' id='american' name='airline'>
<label for="american">American</label>
<br>
<input type="radio" value='air india' id='airIndia' name='airline'>
<label for="airIndia">Air India</label>
<br>
<input type="radio" value='indigo' id='indigo' name='airline'>
<label for="indigo">Indigo</label>
<br>
<br>
<button type='submit'>Submit</button>
</form>脚本
var myForm=document.myForm;
myForm.addEventListener('submit',getAns);
function getAns(e){
e.preventDefault()
var radios=myForm.airline,
checks=myForm.check;
console.log(radios);
var airline= radios.filter(function(val){
return val.checked;
});
console.log(radios);
}发布于 2017-08-18 12:29:34
因为过滤器是一个数组函数
因此,请从下面更改代码
var myForm=document.myForm;
myForm.addEventListener('submit',getAns);
function getAns(e){
e.preventDefault()
var radios=getFields(),
checks=myForm.check;
console.log(radios);
var airline= radios.filter(function(val){
return val.checked;
});
console.log(airline);
}
function getFields() {
inputs=myForm.airline;
var output = [];
for (var i=0; i < inputs.length ; ++i)
output.push(inputs[i]);
return output;
}https://stackoverflow.com/questions/45748300
复制相似问题