Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   не всегда работает скрипт в internet explorer (https://javascript.ru/forum/css-html-internet-explorer/31726-ne-vsegda-rabotaet-skript-v-internet-explorer.html)

sergo_sv 18.09.2012 21:05

не всегда работает скрипт в 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, я только добавил некоторые проверки


Часовой пояс GMT +3, время: 00:27.