как сделать проверку полей на 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, время: 23:25. |