Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка формы на заполнение (пустые поля)! играем с prototype.js на простой задаче 
:(
    Опции темы
SerafimPanov
Дата 28.4.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



Здраствуйте!

Нашёл скрипт проверки формы на заполнение всех полей перед отправкой, но есть проблема, скрипт невкакую нехочет видеть (проверять) поле типа file (выбор файла) вы можете подсказать в чём дело и как исправить ситуацию?

Код
<script type="text/javascript" language="JavaScript">
<!--
// Copyright information must stay intact
// FormCheck v1.10
// Copyright NavSurf.com 2002, all rights reserved
// Creative Solutions for JavaScript navigation menus, scrollers and web widgets
// Affordable Services in JavaScript consulting, customization and trouble-shooting
// Visit NavSurf.com at [URL=http://navsurf.com]http://navsurf.com[/URL]

function formCheck(formobj){
    // name of mandatory fields
    var fieldRequired = Array("userfile", "descr");
    // field description to appear in the dialog box
    var fieldDescription = Array("File", "Descriptions");
    // dialog message
    var alertMsg = "Please complete the following fields:\n";
    
    var l_Msg = alertMsg.length;
    
    for (var i = 0; i < fieldRequired.length; i++){
        var obj = formobj.elements[fieldRequired[i]];
        if (obj){
            if (obj.type == null){
                var blnchecked = false;
                for (var j = 0; j < obj.length; j++){
                    if (obj[j].checked){
                        blnchecked = true;
                    }
                }
                if (!blnchecked){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                continue;
            }

            switch(obj.type){
            case "select-one":
                if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
            case "select-multiple":
                if (obj.selectedIndex == -1){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
            case "text":
            case "textarea":
                if (obj.value == "" || obj.value == null){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
            default:
            }
        }
    }

    if (alertMsg.length == l_Msg){
        return true;
    }else{
        alert(alertMsg);
        return false;
    }
}
// -->
</script>

<form enctype="multipart/form-data" method="post" onsubmit="return formCheck(this);">
<input type="file" name="userfile">
<textarea cols=50 rows=7 name="descr"></textarea>
<input type="submit" value="UpLoad">
</form> 
 

Это сообщение отредактировал(а) 12345c - 28.4.2006, 16:31
PM MAIL   Вверх
Sardar
Дата 29.4.2006, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



SerafimPanov, к text и textarea добавь "file".

Игрался с prototype.js, вышло:

Код
if(!String.prototype.trim) String.prototype.trim = function() {
    return /^\s*((?:.|\n)*?)\s*$/.exec(this)[1];
}

function formCheck(form) {
    form = $(form);
    var fields = $H({
        "userfile":"File",
        "descr":"Descriptions"
    });
    
    var bad = fields.keys().select(function(field) {
        var obj = form.elements[field];
        if(!obj) throw "Element '"+field+"' doesn't exists, please review your form/JS!";
        if(obj.type == null) { //collection of radio buttons
            return !$A(obj).any(function(radio) {
                return radio.checked;
            });
        }
        switch(obj.type) {//select element
         case "select-one":
                return (obj.selectedIndex < 0 || !obj.options[obj.selectedIndex].text.trim());
            case "select-multiple":
                return (obj.selectedIndex < 0);
            case "text":
            case "textarea":
            case "file":
                return !obj.value.trim();
            default: throw "Element '" + field + "' is not validable!";
        }
    });
    
    if(bad.length > 0) {
        alert("Please complete the following fields:\n - " + bad.map(function(field) { return fields[field]; }).join("\n - "));
        return false;
    } else return true;
}


Для работы потребуеться этот фреймворк: http://prototype.conio.net/  


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.