Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.09.2012, 21:05
Новичок на форуме
Отправить личное сообщение для sergo_sv Посмотреть профиль Найти все сообщения от sergo_sv
 
Регистрация: 18.09.2012
Сообщений: 1

не всегда работает скрипт в internet explorer
На странице в форме реализована проверка полей на валидность средствами javascript. На некоторых машинах в IE этот скрипт не работает и сразу идет отправка данных на сервер. Вызов скрипта прописан в форме на событие on submit: onsubmit="return checkAllFields();" . При попытке посмотреть ошибку в дебаггере для ИЕ ошибка исчезает и скрипт выполняется. Дополнительная информация - сайт на CMS contrexx.


function checkAllFields() {
var isOk = true;
$J('.help_field').each(function(){
if(this.title == this.value){
this.value = '';
}
});


$J('#contactFormError').css('display', 'none');
$J('#insert_error_here').html('');


for (var field in fields) {

var type = fields[field][3];
if (type == 'text' || type == 'password' || type == 'textarea' || type == 'date' ) {

value = document.getElementsByName('contactFormField_' + field)[0].value;

if (value == "" && isRequiredNorm(fields[field][1], value)) {
var err_text_example = 'Bitte füllen Sie das Pflichtfeld "{field}" aus!';
if(field == 243 || field == 240 || field == 239 || field == 238){//text
err_text_example = ' Bitte das Feld "{field}" im Text-Format ausfüllen'
}else if(field == 77){//date
err_text_example = ' Bitte das Datum im Format 31.08.2015 eingeben';
}else if(field == 242 || field == 244){//nummer
err_text_example = ' Bitte das Feld "{field}" im Zahlenformat " ausfüllen';
}else if(field == 245 || field == 246){//emeil
err_text_example = ' Bitte Ihre Email-Adresse im Format "user@host.de" eingeben.'
}
add_error(err_text_example, field);//required
isOk = false;
document.getElementsByName('contactFormField_' + field)[0].style.border = "red 1px solid";
} else if (value != "" && !matchType(fields[field][2], value)) {
var err_text_example = 'Bitte füllen Sie das Feld "{field}" richtig aus!';
if(field == 243 || field == 240 || field == 239 || field == 238){//text
err_text_example = ' Bitte das Feld "{field}" im Text-Format ausfüllen'
}else if(field == 77){//date
err_text_example = ' Bitte das Datum im Format 31.08.2015 eingeben';
}else if(field == 242 || field == 244){//nummer
err_text_example = ' Bitte das Feld "{field}" im Zahlenformat " ausfüllen';
}else if(field == 245 || field == 246){//emeil
err_text_example = ' Bitte Ihre Email-Adresse im Format "user@host.de" eingeben.'
}
add_error(err_text_example, field);//wrong type
isOk = false;
document.getElementsByName('contactFormField_' + field)[0].style.border = "red 1px solid";
} else {
document.getElementsByName('contactFormField_' + field)[0].style.borderColor = '';
}
} else if (type == 'checkbox') {
if (!isRequiredCheckbox(fields[field][1], field)) {
isOk = false;
}
} else if (type == 'checkboxGroup') {
if (!isRequiredCheckBoxGroup(fields[field][1], field)) {
isOk = false;
}
} else if (type == 'radio') {
if (!isRequiredRadio(fields[field][1], field)) {
isOk = false;
}
} else if (type == 'file') {
var required = fields[field][1];
var folderWidget = cx.instances.get('uploadWidget', 'folderWidget');
if(required && folderWidget.isEmpty()) {
isOk = false;
document.getElementsByName('contactFormField_uploa d')[0].style.border = "red 1px solid";
}
} else if (type == 'select') {
$J('#contactFormFieldId_238').css('border',"black 1px solid");
if($J('#contactFormFieldId_238 :selected').val()=='') {
add_error(error_arr[8], field); //
isOk = false;
$J('#contactFormFieldId_238 ').css('border',"red 2px solid");
}
}
if (!isOk){

}
}

if(!check_emails('245','246')){
add_error(error_arr[5], field);//emails are not equels
isOk = false;
}

if (!isOk) {

$J(':input').each(function(){
if(this.id){
var id = this.id;
var title;

if($J('#' + id).attr('title') != undefined){
title = $J('#' + id).attr('title');
}else{
title ='';
}

if( $J('#' + id).val() == '' || $J('#' + id).val() == ' '){
$J('#' + id).val($J('#' + id).attr('title'));
}

}
});
document.getElementById('contactFormError').style. display = "block";
}else{

$J(':input').each(function(){
if(this.id){
var id = this.id;
var title;

if($J('#' + id).attr('title') != undefined){
title = $J('#' + id).attr('title');
}else{
title ='';
}

if($J('#' + id).attr('title') == $J('#' + id).val()){
$J('#' + id).val('');
}
}
});
}
return isOk;
}

Код генерится системой contrexx, я только добавил некоторые проверки

Последний раз редактировалось sergo_sv, 18.09.2012 в 23:08.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт работает на локалки, но не работает на хостинге. Artem88 Общие вопросы Javascript 4 15.11.2012 00:59
Проблема с internet explorer androlic Элементы интерфейса 2 24.03.2011 17:23
скрипт работает в IE через раз jsVAN Internet Explorer 2 10.03.2011 03:27
скрипт на сайт под Джумлой, не работает в FF matysse Элементы интерфейса 1 11.10.2010 21:14
скрипт работает только в IE, а в остальных браузерах нет. melodicman Firefox/Mozilla 0 23.06.2010 15:18