Проверка JS - несколько циклов - PullRequest
0 голосов
/ 20 марта 2019

Следующая проверка возвращает ошибку «отсутствует; перед оператором».У меня есть несколько полей в форме, которые я пытаюсь проверить.Одно поле определяет, какие поля необходимо проверить.Это поле является переключателем, содержащим от 1 до 6. Если выбрано 6, тогда (в моем коде) tdchars будет 123456, если выбрано 5, tdchars будет 12345 и так далее.Переменная i будет использоваться для добавления каждого из этих чисел в конец имени поля для ссылки на правильное поле для проверки.

Я не уверен, что правильно создал цикл for.Если я вычеркну петлю, она будет хорошо сохранена.Буду признателен за любую помощь.

Заранее благодарю.

`function getRadioButtonValue(checkboxname) {  
	var x = checkboxname.length; 
	for (var i=0; i < x; i++) {  
		if (checkboxname[i].checked == true) {  
			return checkboxname[i].value; 
		} 
	} 
	return ""; 
}

//THE CODE BELOW IS USED FOR VALIDATION BEFORE SUBMITTING
function validate() {
errMSG = ""
var f = document.forms[0];
var td = getRadioButtonValue(document.forms[0].RAField);

for (td = 1; td <= 6; td++) {
	If (td = 6) {
	var tdChars ="123456";
	}else if (td = 5) {
	var tdChars = "12345";
	}else if (td = 4) {
	var tdChars = "1234";
	}else if (td = 3) {
	var tdChars = "123";
	}else if (td = 2) {
	var tdChars = "12";
	}else {
	var tdChars = "1";
}
	for (i=0; i <=  tdChars.length; i++) {

if(f.JobGuaranteeDuration.selectedIndex<1){
if (errMSG!="") {
			errMSG += "Select a Guarantee Duration for Roof Contruction(i)\n";
		}else {
			errMSG+="Please correct the following:\n\nSelect a Guarantee Duration for Roof Contruction(i)\n";
		}
	}	
if(f.JobName.value == '') {
if (errMSG!="") {
			errMSG += "Enter the Project Name for Roof Contruction(i)\n";
		}else {
			errMSG+="Please correct the following:\n\nEnter the Project Name for Roof Contruction(i)\n";
		}
	}	
if(f.JobSiteAddress.value =='') {
if (errMSG!="") {
			errMSG += "Enter the Job Site Address for Roof Contruction(i)\n";
		}else {
			errMSG+="Please correct the following:\n\nEnter the Job Site Address for Roof Contruction(i)\n";
		}
	}	
if(f.JobSiteCity.value =='') {
if (errMSG!="") {
			errMSG += "Enter the Job Site City for Roof Contruction(i)\n";
		}else {
			errMSG+="Please correct the following:\n\nEnter the Job Site City for Roof Contruction(i)\n";
		}
	}	
if(f.JobSiteState.value == '') {
if (errMSG!="") {
			errMSG += "Enter the Job Site State for Roof Contruction(i)\n";
		}else {
			errMSG+="Please correct the following:\n\nEnter the Job Site State for Roof Contruction(i)\n";
		}
	}	
if(f.JobSiteZip.value =='') {
if (errMSG!="") {
			errMSG += "Enter the Job Site Zip for Roof Contruction(i)\n";
		}else {
			errMSG+="Please correct the following:\n\nEnter the Job Site Zip for Roof Contruction(i)\n";
		}
	}	
if (errMSG != "") {
alert(errMSG);
f.SaveOptions.value = '0';
return false
}
f.SaveOptions.value = '1';
return true
}
}`

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Как было сказано в предыдущем ответе, первый if вызывал ошибку.

Тем не менее, здесь более простой цикл для получения той же строки, что и вы:

tdChars = ""
for(i = 1; i< td + 1; i++){
tdChars = tdChars + i.toString()
}
0 голосов
/ 20 марта 2019

Я думаю, вы пропустили точку с запятой после оператора errMSG = "" в начале функции validate().

Для фона, см. Также https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...