как сделать проверку полей на js
есть скрипт для проверки полей на правильность заполнения формы и выдачи пользователю предупреждения если что не так. скрипт не работает, помогите.
// объявлю массивы fieldnames_array = new Array("authorf", "authorio", "authorcity", "authorcountry", "authorindex", "authorstreet", "authorinstitution", "authoremail"); fielddescription_array = new Array("authoraddress", "authorio", "authorcity", "authorcountry", "authorindex", "authorstreet", "authorinstitution", "authoremail"); // функция проверки поля - не пустое ли оно function textOK(e) { return (e.value != "") ? true : false; } // функция провеки всего масссива полей и выдачи сообщения пользователю function checkSomeFields(f){ var msg; for(j=0; j<=fieldnames_array.length; j++) { if(!textOK(f.fieldnames_array[j])){ msg = msg + "\n\r" + fielddescription_array[j]; } } alert (msg); return true; } и в самой форме прописываю <form action="/gbd/add_new_datasource.php" method="post" onSubmit="return checkSomeFields(this);"> |
Цитата:
function textOK(e) { return e.value != ""; } Ошибка, наверное, здесь: Цитата:
f[fieldnames_array[j]] Массивы лучше объявлять так: // объявлю массивы var fieldnames_array = ["authorf", "authorio", "authorcity", …, "authoremail"]; |
Цитата:
|
Цитата:
Цитата:
|
исправил, дополнил, упрочил - все равно не работает!
форма теперь имеет имя <form action="/gbd/add_new_datasource.php" method="post" name="frm" onSubmit="return checkSomeFields(this);"> // объявлю массивы var fieldnames_array = ["authorf", "authorio", "authorcity", "authorcountry", "authorindex", "authorstreet", "authorinstitution", "authoremail"]; var fielddescription_array = ["authoraddress", "authorio", "authorcity", "authorcountry", "authorindex", "authorstreet", "authorinstitution", "authoremail"]; // функция провеки всего масссива полей и выдачи сообщения пользователю function checkSomeFields(){ var msg; for(j=0; j<=fieldnames_array.length; j++) { if(document.frm.fieldnames_array[j].value !="")){ msg = msg + "\n\r" + fielddescription_array[j]; } } alert (msg); return true; } |
Цитата:
|
спасибо, исправил на document.frm[fieldnames_array[j]].value
но НЕ РАБОТАЕТ! увы! почитал в сети, посмотрел всякие примеры - вроде должно работать, ан нет! пока вернулся к доработке кода на php, доделаю - примусь за js, который я не знаю. |
Покажите страничку с формой, по одному коду трудно сказать, что там еще не работает.
|
http://www.kidneyepidemiology.org/gb...rkingform.html
спасибо если поможете! |
Цитата:
----------- // функция провеки всего масссива полей и выдачи сообщения пользователю function checkSomeFields() { var elements = document.forms["frm"].elements; var element; var msg = ""; for(j = 0; j <= fieldnames_array.length; j++) { element = elements[fieldnames_array[j]]; if (element && element.value) { msg += "\n\r" + fielddescription_array[j]; } } alert (msg); return true; } |
спасибо большое!
заработало с изменением на (element && element.value == "") |
спасибо большое!
заработало с изменением на (element && element.value == "") |
спасибо за данный код
Цитата:
<script> function strcmp(a, b) { if (a.toString() < b.toString()) return -1; if (a.toString() > b.toString()) return 1; return 0; } function textOK(e) { return (e.value != "") ? true : false; } function passwodr() { var el = document.getElementById('rsp'); //<p></p> var a = document.getElementById('TextBoxPassword').value; var b = document.getElementById('TextBoxRePassword').value; var e = document.getElementById('TextBoxRePassword'); if (textOK(e) == true) { if (strcmp(a, b) == -1 || strcmp(a, b) == 1) { el.style.display = 'block'; el.style.color = 'red'; el.innerHTML = 'пароли не совпадают!'; return; } el.innerHTML = ""; el.style.display = 'none'; } } </script> С уважением Юрий |
Часовой пояс GMT +3, время: 09:08. |