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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает JS в FireFox 
V
    Опции темы
Treod
  Дата 14.8.2011, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не работает скрипт в FireFox. 
Вообще не реагирует на события. 
Пример: 

HTML код: 
Код

<td> 
       <input id="vk" name="vk" type="text" value="" size="30" onblur="vkCount()" /><br /> 
        <span class="small">Минимально: 2500 чел.</span> 
</td> 

  
JS: 

Код

function vkCount() { 
    var v = vk.value; 
    if ((v == "" ) || v == 0) { 
        vkTotalSum = 0; 
        vkSum.innerText = "0 руб." 
        vkSumMan.innerText = "0 руб." 
        key = 1; 

    } else { 
      if (vk.value < 2500) { 
          vkSum.innerHTML = "<span class=\"err\">Минимальное значение 2500</span>"; 
          key = 0; 
      } else { 
            key = 1; 
          if (vk.value.match(/^\d+$/)) { 
              vkMan = 12.5; 
              vkSum.innerText = parseInt(vk.value*vkMan)+" руб."; 
              vkSumMan.innerText = vkMan+" руб."; 
              vkTotalSum = parseInt(vk.value*vkMan); 
          } else { 
              vkSum.innerHTML = "<span class=\"err\">Можно вводить только цифры</span>"; 
              key = 0; 
          } 
      } 
    } 
}


PM MAIL ICQ   Вверх
нуп
Дата 14.8.2011, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



Обращаться к элементу надо через  document.getElementById('vk') вместо var v = vk.value; 
PM MAIL   Вверх
Treod
Дата 14.8.2011, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



я сделал так. в windows.onload обхявил переменнные следующим образом:

Код

window.onload = function() {

    var vk = document.getElementById("vk");
    var tw = document.getElementById("tw");
    var chMail = document.getElementById("chMail");
    var total = document.getElementById("total");
    var discount = document.getElementById("discount");
    var totalDis = document.getElementById("totalDis");
    var econom = document.getElementById("econom");
    var selMail = document.getElementById("selMail");
    var mStoim = document.getElementById("mStoim");
    var email = document.getElementById("email");


А потом использовал их.
PM MAIL ICQ   Вверх
нуп
Дата 14.8.2011, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



Описание функции идет до вывода html? 
PM MAIL   Вверх
Treod
Дата 14.8.2011, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Описание функции у меня в отдельном файле.
PM MAIL ICQ   Вверх
нуп
Дата 14.8.2011, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



Наверное в ff нету innerText, замените на innerHTML 
PM MAIL   Вверх
Treod
Дата 14.8.2011, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



HTML:
Код

 <table class="mytable">
        <tr>
            <td class="vc">Количество привлеченных участников<br /> в группу "Вконтакте</td>
            <td>
                <input id="vk" name="vk" type="text" value="" size="30" onblur="vkCount()" /><br />
                <span class="small">Минимально: 2500 чел.</span>
            </td>
            <td id="myErr" class="vc">
                Стоимость: <span id="vkSum">0 руб.</span><br />
                Стоимость на одного человека: <span id="vkSumMan">0 руб.</span>
            </td>
        </tr>
        <tr>
            <td class="vc">Количество подписчиков в Twitter</td>
            <td>
                <input id="tw" name="tw" type="text" value="" size="30" onBlur="twCount()" /><br />
                <span class="small">Минимально: 500 чел.</span>
            </td>
            <td class="vc">
                Стоимость: <span id="twSum">0 руб.</span><br />
                Стоимость на одного человека: <span id="twSumMan">0 руб.</span>
            </td>
        </tr>
        <tr>
            <td>Cоздание системы e-mail подписки</td>
            <td>
                <input id="chMail" type="checkbox" name="chMail" value="mail" onclick="checkMail()" />
                <select id="selMail" name="saleMail" size="1" onchange="mySelM()">
                    <option value="0">0</option>
                    <option value="5">5</option>
                    <option value="10">10</option>
                </select>
                продающих писем
            </td>
            <td>Стоимость: <span id="mStoim">0 руб.</span></td>
        </tr>
        <tr>
            <td>Итого:</td>
            <td id="total">0 руб.</td>
            <td></td>
        </tr>
        <tr>
            <td >Скидка:</td>
            <td id="discount">0%</td>
            <td></td>
        </tr>
        <tr>
            <td>Итого со скидкой:</td>
            <td id="totalDis">0 руб.</td>
            <td></td>
        </tr>
        <tr>
            <td>Сэкономлено:</td>
            <td id="econom">0 руб.</td>
            <td></td>
        </tr>
        <tr>
            <td><input onclick="myTotalCount()" type="button" name="butt" value="Подсчитать" /></td>
            <td></td>
            <td></td>
        </tr>
    </table>
    <div id="email" class="email">
        <input style="margin-bottom: 2px;" id="sendemail" type="text" name="email" value="" />
        <input onclick="sendData()" type="button" value="Выслать на e-mail">
    </div>


JS:
Код

window.onload = function() {
    //Переменные
    var vk = document.getElementById("vk");
    var tw = document.getElementById("tw");
    var chMail = document.getElementById("chMail");
    var total = document.getElementById("total");
    var discount = document.getElementById("discount");
    var totalDis = document.getElementById("totalDis");
    var econom = document.getElementById("econom");
    var selMail = document.getElementById("selMail");
    var mStoim = document.getElementById("mStoim");
    var email = document.getElementById("email");


    //var totalSum = 0;
    //var mailSum = 0;
    //var skidka = 0;

    var vkSum = document.getElementById("vkSum");
    var vkSumMan = document.getElementById("vkSumMan");
    var vkTotalSum = 0;

    var twSum = document.getElementById("twSum");
    var twSumMan = document.getElementById("twSumMan");
    var twTotalSum = 0;

    var key = 1;
    var vkMan = 0;
    var twMan = 0;
}

var totalSum = 0;
var mytotaldis = 0;
var myecinom = 0;

var key = 1;
var mailSum = 0;
var skidka = 0;
var vkTotalSum = 0;
var twTotalSum = 0;
var vkMan = 0;
var twMan = 0;

var vkTotalSumSkidka;
var twTotalSumSkidka;
var vkManSkidka;
var twManSkidka;

function sendData() {
    var regex;
    var sendemail = document.getElementById("sendemail");
    var reg = new RegExp("[0-9a-z_]+@[0-9a-z_^.]+\\.[a-z]{2,3}", 'i');
    if (reg.test(sendemail.value)) {
        $("#email").load("http://www.welikemedia.ru/calc/mysend.php", {vkSum: vkTotalSumSkidka, twSum: twTotalSumSkidka, vkSumMan: vkManSkidka, twSumMan: twManSkidka, mailSum: mailSum, total: totalSum, sk: skidka, totaldis: mytotaldis, econom: myeconom, myemail: sendemail.value});
    } else {
        alert("Некорректно введен e-mail");
    }

}

function myTotalCount() {

    var mStoim = document.getElementById("mStoim");

    //var vkTotalSumSkidka;
    //var twTotalSumSkidka;
    //var vkManSkidka;
    //var twManSkidka;
    var ppp;
    var sk;

    if (key == 0) {
        alert("Неверные данные для подсчета");
        return;
    }

    //Подсчет итоговой суммы
    totalSum = mailSum + twTotalSum + vkTotalSum;
    total.innerText = totalSum+" руб.";

    //Подсчет скидки
    if ((totalSum > 73900)  && (totalSum <= 150000)) skidka = 0.05;
    else if ((totalSum > 150000) && (totalSum <= 230000)) skidka = 0.1;
    else if (totalSum > 230000) skidka = 0.15;
    sk = skidka*100;
    sk = parseInt(sk);
    discount.innerText = sk+"%";

    //Итого со скидкой
    ppp = totalSum - totalSum*skidka;
    mytotaldis = ppp;
    totalDis.innerHTML = "<span style=\"font-size: 14px; font-weight: bold;\">"+ppp+" руб.</span>";
    //Сэкономлено
    econom.innerText = totalSum - (totalSum - totalSum*skidka)+" руб.";
    myeconom = totalSum - (totalSum - totalSum*skidka);

    //Пересчитываем сумму для Вконтакте и Твитер
    vkTotalSumSkidka = vkTotalSum - vkTotalSum*skidka;
    twTotalSumSkidka = twTotalSum - twTotalSum*skidka;
    vkManSkidka = vkMan - vkMan*skidka;
    twManSkidka = twMan - twMan*skidka;
    mailSumSkidka = mailSum*skidka;

    if (vkTotalSumSkidka != 0) {
        vkSum.innerHTML = "<span style=\"text-decoration: line-through;\">"+vkTotalSum+"</span><span style=\"font-size: 14px; font-weight: bold;\"> "+vkTotalSumSkidka+" руб.</span>";
         vkSumMan.innerHTML = "<span style=\"text-decoration: line-through;\" >"+vkMan+"</span><span style=\"font-size: 14px; font-weight: bold;\"> "+vkManSkidka+" руб.</span>";
    }
    if (twTotalSumSkidka != 0) {
        twSum.innerHTML = "<span style=\"text-decoration: line-through;\" >"+twTotalSum+"</span><span style=\"font-size: 14px; font-weight: bold;\"> "+twTotalSumSkidka+" руб.</span>";
        twSumMan.innerHTML = "<span style=\"text-decoration: line-through;\" >"+twMan+"</span><span style=\"font-size: 14px; font-weight: bold;\"> "+twManSkidka+" руб.</span>";
    }

    if (mailSumSkidka != 0) {
        mStoim.innerHTML = "<span style=\"text-decoration: line-through;\" >"+mailSum+"</span><span style=\"font-size: 14px; font-weight: bold;\"> "+mailSumSkidka+" руб.</span>";
    }


    //Отображаем поле для отправки на e-mail
    document.getElementById('email').style.display='block';
}

function vkCount() {
    var v = vk.value;
    if ((v == "" ) || v == 0) {
        vkTotalSum = 0;
        vkSum.innerText = "0 руб."
        vkSumMan.innerText = "0 руб."
        key = 1;

    } else {
      if (vk.value < 2500) {
          vkSum.innerHTML = "<span class=\"err\">Минимальное значение 2500</span>";
          key = 0;
      } else {
            key = 1;
          if (vk.value.match(/^\d+$/)) {
              //Подсчет vk:
              //Определяем стомость на одного человека
              vkMan = 12.5;
              vkSum.innerText = parseInt(vk.value*vkMan)+" руб.";
              vkSumMan.innerText = vkMan+" руб.";
              vkTotalSum = parseInt(vk.value*vkMan);
          } else {
              vkSum.innerHTML = "<span class=\"err\">Можно вводить только цифры</span>";
              key = 0;
          }
      }
    }
}

function twCount() {
    var t = tw.value;
    if ((t == "") || (t == 0)) {
        twTotalSum = 0;
        twSum.innerText = "0 руб.";
        twSumMan.innerText = "0 руб.";
        key = 1;
    } else {
      if (t < 500) {
          twSum.innerHTML = "<span class=\"err\">Минимальное значание 500<span class=\"err\">";
          key = 0;
      } else {
            key = 1;
          if (t.match(/^\d+$/)) {
              //Подсчет tw:
              twMan = 14.5;
              twSum.innerText = parseInt(tw.value*twMan)+" руб.";
              twSumMan.innerText = twMan+" руб.";
              twTotalSum = parseInt(tw.value*twMan);
          } else {
              twSum.innerHTML = "<span class=\"err\">Можно вводить только цифры</span>";
              key = 0;
          }
      }
    }
}

function checkMail() {
    if (chMail.checked) {
        mailSum = 19900;
        if (selMail.value == 5) mailSum = 29900;
        else if (selMail.value == 10) mailSum = 37900;
        else if (selMail.value == 0) mailSum = 19900;
        mStoim.innerText = mailSum+" руб.";
    } else {
        mailSum = 0;
        mStoim.innerText = mailSum+" руб.";
    }
}

function mySelM() {
  if (chMail.checked) {
    if (selMail.value == 5) mailSum = 29900;
    else if (selMail.value == 10) mailSum = 37900;
    else if (selMail.value == 0) mailSum = 19900;
    mStoim.innerText = mailSum+" руб.";
  } else {
    mailSum = 0;
    mStoim.innerText = mailSum+" руб.";
  }
}


Добавлено через 2 минуты
innerText заменил. Не помогло.
PM MAIL ICQ   Вверх
нуп
Дата 14.8.2011, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



Как я сразу не увидел. Надо так писать
Код

var vk, tw;
window.onload = function() {
    //Переменные
     vk = document.getElementById("vk");
    tw = document.getElementById("tw");
   .....

И поставить firebug!
PM MAIL   Вверх
Treod
Дата 14.8.2011, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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


 




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


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

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