как сделать проверку полей на 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;
}
|
| Часовой пояс GMT +3, время: 06:33. |