Javascript 函数返回未定义的值
我有一些代码,我想用它来验证文本字段中的电子邮件数量Javascript 函数返回未定义的值,javascript,function,dom,return,Javascript,Function,Dom,Return,我有一些代码,我想用它来验证文本字段中的电子邮件数量 function lockSubmits(selector,value){ var submitInputs = document.querySelectorAll(selector); for(var j = 0; j<=submitInputs.length; j++){ submitInputs[j].disabled = value; } } functi
function lockSubmits(selector,value){
var submitInputs = document.querySelectorAll(selector);
for(var j = 0; j<=submitInputs.length; j++){
submitInputs[j].disabled = value;
}
}
function checkQuantity(tested,sign){
var testedField = document.querySelector(tested);
var mailCounter = 0;
for(var i=0; i<testedField.value.length; i++){
if(testedField.value[i] == '@'){
mailCounter += 1;
}
return mailCounter;
}
}
var eventField = document.querySelector('#tag_email_list');
var alertCounter = false;
eventField.addEventListener('input',function(){
// var mailCounter = 0;
// for(var i=0; i<testedField.value.length; i++){
// if(testedField.value[i] == '@'){
// mailCounter += 1;
// }
// }
checkQuantity('#tag_email_list','@');
if((!alertCounter) && (mailCounter >= 999)){
alert('<%= tt('tag.email_list_lock') %>');
lockSubmits('input[type="submit"]', true);
alertCounter = true;
}
if(mailCounter<= 999){
lockSubmits('input[type="submit"]', false);
alertCounter = false;
}
})
在检查mailCounter是否大于或等于999时,有什么建议吗?return mailCounter是否应返回mailCounter值?现在它返回了referenceError:mail Counter未定义您需要将调用
checkQuantity的返回值分配给一个变量mailCounter
的作用域限定在定义它的函数内,因此如果尝试引用它,将导致referenceError
var mailCounter = checkQuantity('#tag_email_list','@');
if(!alertCounter && mailCounter >= 999) {
...
}
同样,在第二个if
语句中也需要这样做
if(mailCounter <= 999) { ... }
关于“将chec quantity调用的返回值赋给变量”的任何示例或单词,您是指在if语句中var zmienna=checkQuantity(args)和next check zmienna?我认为没有,因为我尝试了var checkQuantity=function(tested,sign){the code},但它仍然返回相同的错误OK,这是可行的,但现在mailCounter始终是一个,无论有多个“@”…我建议您针对mailCounter的问题提出一个新问题,因为它超出了当前问题的范围。很高兴你解决了这个未定义的问题。
if(mailCounter <= 999) { ... }
if(mailCounter < 999) { ... }