За последние 24 часа нас посетили 70619 программистов и 1602 робота. Сейчас ищет 1021 программист ...

Ошибка в IE релоада страницы

Тема в разделе "JavaScript и AJAX", создана пользователем Greg1978, 27 май 2010.

  1. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Здраствуйте, возникла такая проблема.
    Есть валидация полей на различные параметры в javascript.
    Проверка количества выбранных чекбоксов проходит нормально в любом браузере и при неправильном выборе выводится окно сообщения alert с текстом заданной ошибки. Так вот в при нажатии "OK" окна сообщения в браузере Mozilla, да и в других, перезагрузки страницы не происходит, а в IE происходит перезагрузка что совершенно не желательно.
    Подскажите пожалуйста в чём может быть причина и есть какое нибудь универсально средство.
    Если возможно подтолкните где искать решение проблемы.

    [js]
    ...
    alert(strErr);
    return false;
    ...
    [/js]
    Спасибо!!!
     
  2. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    добрый вечер

    событие какое, onsubmit или onclick? приведите, пожалуйста, код всего тега, где определено событие
     
  3. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Это подсчёт количества выбранных чекбоксов.

    [js]
    ...

    <script language = "JavaScript">
    function count_checked_checkboxes (obj, counter_input) {
    var parent_tag = obj.parentNode.parentNode;
    var counter_input_obj = document.getElementById (counter_input);
    counter_input_obj.value = 0;
    var checkboxes = parent_tag.getElementsByTagName("input");
    for (var i=0;i<checkboxes.length;i++)
    {
    if (checkboxes.checked) {
    counter_input_obj.value ++;
    }
    }
    }

    function CheckCB(Element){
    if(document.getElementById) {
    if(document.getElementById(Element.id.replace('cb','tr'))){Element.checked = !Element.checked;}
    }
    }
    </script>
    ....

    <input type = "hidden" value = "0" name = "languages_count" id = "languages_count">
    <INPUT onchange="count_checked_checkboxes(document.getElementById('languages_count'), 'languages_count');return CheckCB(this);" type=checkbox value=1>


    ....
    <script language="JavaScript" type="text/javascript">

    var frmvalidator = new Validator("changeprofile");
    frmvalidator.addValidation("interests_count", "lt=<?php echo $checkboxes_int_max+1; ?>","Count of your interests must be less or equal <?php echo $checkboxes_int_max; ?>");
    frmvalidator.addValidation("interests_count", "gt=<?php echo $checkboxes_int_min-1; ?>","Count of your interests must be great or equal <?php echo $checkboxes_int_min; ?>");

    ....
    [/js]

    Прерывание происходит в инклуденном скрипте вот кусок кода где оно происходит:
    [js]case "lt":
    case "lessthan":
    {
    if(isNaN(objValue.value))
    {
    alert(objValue.name+": Should be a number ");
    return false;
    }//if
    if(eval(objValue.value) >= eval(cmdvalue))
    {
    if(!strError || strError.length ==0)
    {
    strError = objValue.name + " : value should be less than "+ cmdvalue;
    }//if
    alert(strError);
    return false;
    }//if
    break;
    }//case lessthan
    case "gt":
    case "greaterthan":
    {
    if(isNaN(objValue.value))
    {
    alert(objValue.name+": Should be a number ");
    return false;
    }//if
    if(eval(objValue.value) <= eval(cmdvalue))
    {
    if(!strError || strError.length ==0)
    {
    strError = objValue.name + " : value should be greater than "+ cmdvalue;
    }//if
    alert(strError);
    return false;
    }//if
    break;
    }//case greaterthan [/js]
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    сейчас меня бить будут наверное за такой совет)
    попробуйте отправлять форму после проверки самим яваскриптом)