Возврат HTML-цикла заканчивается преждевременно - PullRequest
0 голосов
/ 11 октября 2011

Я использую 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 устанавливают innerHtml в первом элементе div, это прерывает цикл for. Есть ли способ избежать этого?

1 Ответ

0 голосов
/ 11 октября 2011

Моя функция removeWhiteSpace не работала правильно, поэтому все после моего первого поля терпело неудачу. Глупая ошибка. Пожалуйста, закройте этот вопрос.

...