返回HTML结束循环过早

Returning HTML Ends Loop Premature

本文关键字:循环 结束 HTML 返回      更新时间:2023-09-26

我使用javascript来验证一些表单元素。在提交表单时,我希望需要的字段被传递到validateReqFields函数中。一切都工作得很完美,直到我到达for循环,这意味着在表单字段旁边添加一个空的错误消息。似乎一旦一个字段失败并将消息添加到div中,for循环就不会继续。

HTML表单元素:

First Name <input type="text" name="firstName"  onkeypress="return checkField(event, letters);"/><div id="firstNameMsg" style="display:inline-block;"></div>
<br>
Last Name <input type="text"  name="lastName" onkeypress="return checkField(event,        letters);"/><div id="lastNameMsg" style="display:inline-block;"></div>

Javascript函数:

function validateReqFields(formName, reqFields){
var fieldArray = reqFields.split(",");
var failedList = new Array();
var message = "Required Field";
for(var i=0; i<fieldArray.length; i++){
    removeWhiteSpace(fieldArray[i]);
    var s = eval('document.'+formName+'.'+fieldArray[i]+'.value');
    if(s.length<1) { failedList.push(fieldArray[i]); }
}
if(failedList.length >= 1) { 
    for(var i=0; i<failedList.length; i++) {
        //BUG - Only shows first failed field.
        document.getElementById(failedList[i] + 'Msg').innerHTML = message;
    }
} else {
    document.mForm.submit();
}
}
function removeWhiteSpace(mString){
mString = mString.replace(/(^'s+|'s+$)/g,' ');
return mString;
}

我做了一些测试,并得出结论,当for循环在第一个div元素上设置innerHtml时,它打破了for循环。有办法避免这种情况吗?

我的removeWhiteSpace函数不能正常工作,因此我的第一个字段之后的所有内容都失败了。愚蠢的错误。