单选按钮验证:我可以验证它,但我不知道原因
Radio Button Validation: I could validate it but I cant figure out the reason
我在尝试验证是否选择了单选按钮时遇到了问题,因此会显示警报。好吧,我发现了错误(我把条件语句放在循环中)。
即使我解决了这个问题,我也不明白为什么我的代码在循环外能正常工作,但在循环内却不能工作。现在我陷入了困境。
如果有人能告诉我原因,我将不胜感激。
下面你会看到两个JS代码,但这里有一些麻烦的例子:
JSFiddle不起作用
工作于的JSFiddle
这是不起作用的JS代码:
var getForm = document.getElementById('formX');
var putForm = getForm.onsubmit = showIt;
function showIt(){
var getNames = document.getElementsByName('season');
var result = false;
for(var i = 0; i < getNames.length; i++){
if(getNames[i].checked){
result = true;
break;
}
if(result === false){
alert('Please, choose an option');
return false;
}else{
alert('You''ve choosen ' + getNames[i].value)
}
}//Loop ends here.
}
这是一个没有问题的JS代码:
var getForm = document.getElementById('formX');
var putForm = getForm.onsubmit = showIt;
function showIt(){
var getNames = document.getElementsByName('season');
var result = false;
for(var i = 0; i < getNames.length; i++){
if(getNames[i].checked){
result = true;
break;
}
}//Loop ends here.
if(result === false){
alert('Please, choose an option');
return false;
}else{
alert('You''ve choosen ' + getNames[i].value)
}
}
也许JS代码中不起作用的for循环有错误的逻辑,这意味着如果第一个单选按钮被选中,for循环就会停止;如果第一个单选按钮未选中,它将提示"请选择一个选项"并停止for循环。逻辑仅验证第一个单选按钮。也许这就是问题所在。
这是因为您的break;
行。
当它在循环中时,在它有机会达到以下代码之前,你就把它分解为true:if(result === false)
break
正在突破整个循环,这意味着它永远不会击中你的if(result===false)
希望能有所帮助!
循环中的逻辑错误,请尝试以下操作:
var getForm = document.getElementById('formX');
var putForm = getForm.onsubmit = showIt;
function showIt(){
var getNames = document.getElementsByName('season');
var result = false;
for(var i = 0; i < getNames.length; i++){
if(getNames[i].checked){
alert('You''ve chosen ' + getNames[i].value)
result = true
}
if (i == getNames.length - 1 && !result)
{
alert('Please, choose an option')
}
}
}
如果你的问题是我如何让它发挥作用,答案中有几个很好的建议。
如果你想知道:"为什么使用第一种方法不起作用?"最好的答案是break;
行导致循环立即终止,从而阻止alert("You've chosen...")
有机会触发。
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 这个旋钮没有更新;我不知道为什么
- 我不知道为什么我的代码是错误的?又有什么错
- 我不知道我的编码有什么问题.(JavaScript)
- I'我不知道为什么我的代码没有'不起作用
- sqlite查询返回错误-can'我不知道为什么
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 我不知道如何正确地将REST响应对象传递给ReactJS子组件
- 我没有'我不知道为什么我的jqGrid子网格没有'不要给我看数据
- 如何为javascript创建自定义标签?或者这是我不知道的其他事情吗;我不知道
- 我已经用javascript制作了一个幻灯片,但我不知道如何让我的照片发呆
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 单选按钮验证:我可以验证它,但我不知道原因
- 当我没有'我不知道关键值
- 我的素数函数坏了,但我没有;我不知道为什么
- 我得到了这个错误,但是不要;我不知道如何修复它,www.example.com/undefined?1460018627
- jquery库”;uriAnchor”-我可以'我不知道如何设置验证配置
- 我的javascript验证刚刚停止工作,我不知道为什么
- jquery验证不起作用;我不知道为什么