简单的JavaScript检查不起作用?
我有一个验证表单功能:简单的JavaScript检查不起作用?,javascript,Javascript,我有一个验证表单功能: function ValidateForm() { var chks = document.register.elements['sendto[]']; var hasChecked = false; for (var i=0;i<chks.length;i++){ if (chks[i].checked){ hasChecked = true; break; }
function ValidateForm() {
var chks = document.register.elements['sendto[]'];
var hasChecked = false;
for (var i=0;i<chks.length;i++){
if (chks[i].checked){
hasChecked = true;
break;
}
}
if (!hasChecked){
alert("Please select at least one friend.");
chks[0].focus();
return false;
}
}
函数ValidateForm(){
var chks=document.register.elements['sendto[]'];
var hasChecked=false;
对于(变量i=0;i
函数验证(){
var chks=document.getElementsByName('sendto[]);
var hasChecked=false;
对于(变量i=0;i
函数验证(){
var chks=document.getElementsByName('sendto[]);
var hasChecked=false;
对于(变量i=0;i
声明
var chks = document.register.elements['sendto[]'];
获取名为sendto[]
如果只有一个元素名为sendto[]
,则该元素的引用位于chks
如果有多个元素的名称为sendto[]
,则chks
保留对这些元素数组的引用
执行此操作时:
for (var i=0;i<chks.length;i++){
PS:
代码在ValidateForm()上给出了一条未定义的消息,但它并没有传达太多信息。即使对您来说,也不清楚这意味着什么(这就是为什么您要问这个问题)。尝试提供更多详细信息。任何现代浏览器都会提供有关未定义的、未定义的内容、哪一行等的更多详细信息。即使是历史之前的浏览器也会告诉您引发未定义错误的行号。有了这些详细信息,您可以尝试查找该行并尝试查看发生的情况。您很可能会发现。如果您不知道,p将所有这些细节发布到这里的社区。声明
var chks = document.register.elements['sendto[]'];
获取名为sendto[]
如果只有一个元素名为sendto[]
,则该元素的引用位于chks
如果有多个元素的名称为sendto[]
,则chks
保留对这些元素数组的引用
执行此操作时:
for (var i=0;i<chks.length;i++){
PS:
代码在ValidateForm()上给出了一条未定义的消息,但它并没有传达太多信息。即使对您来说,也不清楚这意味着什么(这就是为什么您要问这个问题)。尝试提供更多详细信息。任何现代浏览器都会提供有关未定义的、未定义的内容、哪一行等的更多详细信息。即使是历史之前的浏览器也会告诉您引发未定义错误的行号。有了这些详细信息,您可以尝试查找该行并尝试查看发生的情况。您很可能会发现。如果您不知道,p向社区发布所有这些详细信息。以下是我将如何做到这一点
if(!validate()){
alert("Please select at least one.");
return false;
}
function validate(){
var els=document.getElementsByName('sendto[]');
for(var i=0;i<els.length;i++){
if(els[i].checked){
return true;
}
}
return false;
}
if(!validate()){
警报(“请至少选择一个。”);
返回false;
}
函数验证(){
var els=document.getElementsByName('sendto[]);
对于(var i=0;i,我将这样做
if(!validate()){
alert("Please select at least one.");
return false;
}
function validate(){
var els=document.getElementsByName('sendto[]');
for(var i=0;i<els.length;i++){
if(els[i].checked){
return true;
}
}
return false;
}
if(!validate()){
警报(“请至少选择一个。”);
返回false;
}
函数验证(){
var els=document.getElementsByName('sendto[]);
对于(var i=0;我假设register
是他的表单名。@古诺你怎么知道消息没有定义?你在控制台中检查吗?听起来不像是鸡巴什么的,但是你可能需要在for
语句中把++
放在i
之前。事实上,只有当问题刚刚出现时,问题才会出现e元素表明可能是这样的..但我一点也不确定,所以我不会把它作为一个答案。我假设register
是他的表单名。@Gurnor你怎么知道消息是未定义的?你是在控制台中检查的吗?听起来不像是迪克或其他什么,但也许你需要把++
放在i 在for
语句中..只有当只有一个元素时才会出现问题这一事实表明可能就是它..但我根本不确定,因此我不会将此添加为答案。尝试此代码时,我收到以下警告:警告:为foreach()提供的参数无效@Gurnor我没有使用for each循环。你确定它在我的代码中吗?它似乎对我有效。是否有行号告诉错误发生的位置?尝试此代码时,我收到以下警告:警告:为foreach()提供的参数无效@Gurnor我没有使用for each循环。你确定它在我的代码中吗?它似乎对我有效。是否有行号可以告诉错误发生在哪里?@Gurnor:not working=?你还没有给出更多的细节。顺便说一句,我的目的不是给你正确的代码,而是给你指出正确的方向…@Gurnor:not working=?你没有给出更多的细节。顺便说一句,我的目的不是给你正确的代码,而是给你指出正确的方向。。。
if(!validate()){
alert("Please select at least one.");
return false;
}
function validate(){
var els=document.getElementsByName('sendto[]');
for(var i=0;i<els.length;i++){
if(els[i].checked){
return true;
}
}
return false;
}