Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Js в IE. form.elements


Автор: Sidious 19.4.2007, 10:21
Собственно код 
Код

        elem = document.getElementById('sForm');
        for (var i = 0; i < elem.elements.length; i++) {
            if (elem.elements[i].value == "") {
                alert("Поле [" + arrNames[i] + "] обязательно для заполнения!");
                elem.elements[i].focus();
                elem.elements[i].select();
                return;
            }
            var re1 = /'/g;
            var re2 = /"/g;
            var re3 = />/g;
            var re4 = /</g;
            elem.elements[i].value = elem.elements[i].value.replace(re1, "'");
            elem.elements[i].value = elem.elements[i].value.replace(re2, """);
            elem.elements[i].value = elem.elements[i].value.replace(re3, "&gt;");
            elem.elements[i].value = elem.elements[i].value.replace(re4, "&lt;");
        }

В IE elem.elements[i].value постоянно null
В других браузерах все ок, чаво может быть?

Автор: Sidious 20.4.2007, 14:10
No ideas?  smile 

Автор: vasac 20.4.2007, 19:43
где sForm?
есть на странице элементы с id="elem" ?
переменные должны объявляться при помощи "var"

Автор: Alx 21.4.2007, 02:20
а символы экранировать мы не будем??

Автор: Sidious 23.4.2007, 09:41
Вот весь код
Код

function getObject(id)
{
if(document.getElementById){
// IE >= 5.0 or NN >= 6.0
return document.getElementById(id);
} else if(document.all){ // IE 4
return document.all(id);s
}else if(document.layers){ // NN 4
return document.layers[id];
}else{
return false;
}
}
function checkForm(name) {
        var arrNames = new Array();
        var elem = false;
        switch(name) {
        case 'faq':
            arrNames[0] = "Вопрос";
        break;
        case 'guestbook':
        case 'email':
            arrNames[0] = "Имя";
            arrNames[1] = "Текст";
        break;
        case 'order':
            arrNames[0] = "Полное название юридического лица";
            arrNames[1] = "Республика, область, край";
            arrNames[2] = "Город";
            arrNames[3] = "Фактический адрес";
            arrNames[4] = "Контактное лицо (ФИО)";
            arrNames[5] = "Контактный телефон (с кодом города)";
            arrNames[6] = "Факс";
            arrNames[7] = "E-mail";
            arrNames[8] = "URL";
            arrNames[9] = "Адрес, на который нужно выслать каталог";
            arrNames[10] = "Примечания";
        break;
        case 'reg':
            arrNames[0] = "Желаемый логин";
            arrNames[1] = "Желаемый пароль";
            arrNames[2] = "Желаемый пароль";
            arrNames[3] = "Полное название вашей организации";
            arrNames[4] = "Фактический адрес вашей организации";
            arrNames[5] = "Контактное лицо ФИО";
            arrNames[6] = "Должность, отдел контактного лица";
            arrNames[7] = "Республика, облость, край";
            arrNames[8] = "Город";
            arrNames[9] = "E-Mail";
            arrNames[10] = "Примечания";
        break;
        }
        
        elem = document.getElementById('sForm');
        for (var i = 0; i < elem.elements.length; i++) {
            if (elem.elements[i].value == "") {
                alert("Поле [" + arrNames[i] + "] обязательно для заполнения!");
                elem.elements[i].focus();
                elem.elements[i].select();
                return;
            }
            var re1 = /'/g;
            var re2 = /"/g;
            var re3 = />/g;
            var re4 = /</g;
            elem.elements[i].value = elem.elements[i].value.replace(re1, "'");
            elem.elements[i].value = elem.elements[i].value.replace(re2, """);
            elem.elements[i].value = elem.elements[i].value.replace(re3, "&gt;");
            elem.elements[i].value = elem.elements[i].value.replace(re4, "&lt;");
        }
        elem.submit();
}

    function openWindow (href, name) {
            var posCode = '';
            posX = Math.round((screen.width - 750) / 2);
            posY = Math.round((screen.height - 550) / 2);
            posCode = (document.all)? ",left="+posX+",top="+posY : ",screenX="+posX+",screenY="+posY;
            moreWin = window.open (href, name, "status=yes, toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, width=750, height=550"+posCode);
            moreWin.focus();
        }



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)