Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 9

Form action="" не работает в хроме и опере

27.07.2017, 20:43. Показов 4312. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток знатокам!


Столкнулся с проблемой, которая не даёт реализовать отправку данных через:
HTML5
1
<form action="">
в браузерах хром и опера. В мозиле и IE работает.

Код: (здесь при нажатии на кнопку срабатывает скрипт js, и включается таймер, но так же должен состоятся переход на другую страницу save.php)
HTML5
1
2
3
4
5
6
7
8
9
10
11
<div id="fomrhunting" >
  <form id="farm" action="save.php" method="post" enctype="multipart/form-data">
    <img src="img/hunting.gif" width="150" align="left">
    <div class="submit">
      <input type="text" name="balans" value="1" /><br> 
      <input id="timerhunting" type="submit" value="Отправиться на охоту" name="submit" onClick=startTimerhunting('my_timerhunting',1) >
    </div>                      
    <div class="timer"><span id="my_timerhunting">00:00:10</span></div> 
  </form>
  <script type="text/javascript" src="js/timerhunting.js"></script>
</div>
Код: (с помощью этого скрипта включается таймер и отключается кнопка на время таймера)

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
(function() {
    function getElem_Time(outElem) {
        var arr = outElem.innerHTML.split(':')
        return 1000*(3600*(+arr[0])+60*(+arr[1])+(+arr[2]));
    }
    function two_dig (t) {
        return  (parseInt(t)/100).toFixed(2).toString().split('.')[1];
    }
    function getHH_MM_SS(sek) {
        return two_dig (sek/3600)+  ':' + two_dig ((sek/60)%60)+ ':' + two_dig (sek%60);
    }
    var timerId;        // ID setInterval
    var firstSaveVal;   // Тут сохраняем начальное значение Time из элемента;
    var  endDate     =  localStorage.endDate;
    startTimerberries = function(sel,test){  //test == 1 при запуске по кнопке и == 0 при автозапуске на новой странице, 3 - сброс;
        var outElem = document.getElementById(sel); //объект вывода/ввода цифр
        clearInterval(timerId);
        if(!firstSaveVal)firstSaveVal = outElem.innerHTML;
        if(!endDate &&!test) return false; //Aвтозапуск на новой странице;
        var deltaT = getElem_Time(outElem);
        if(test){
            document.getElementById("timerberries").disabled = true; //запрет на кнопку
            document.getElementById("timerhunting").disabled = true;
            outElem.innerHTML = firstSaveVal;
            deltaT = getElem_Time(outElem);
            delete localStorage.endDate;
            endDate = localStorage.endDate;
        }
        var thisTime = +new Date();
        if(!endDate){
            var timeEnd = thisTime + deltaT;
            localStorage.endDate = sel+','+ timeEnd;
        }
        if(endDate &&!test){
            var arr = endDate.split(',');
            var outElem = document.getElementById(arr[0]);
            var timeEnd = +arr[1];
            document.getElementById("timerberries").disabled = true; //запрет на кнопку
            document.getElementById("timerhunting").disabled = true;
        }
        function setOutTime(){
            if(+new Date()>=timeEnd){
                clearInterval(timerId);
                outElem.innerHTML='00:00:00';
                document.getElementById("timerberries").disabled = false; //разрешение на кнопку
                document.getElementById("timerhunting").disabled = false;
                delete localStorage.endDate;
                return;
            }
            var timeToFinish = parseInt((timeEnd - +new Date())/1000);
            outElem.innerHTML = getHH_MM_SS(timeToFinish);
        }  
        setOutTime();
        timerId = setInterval(setOutTime,1000);
    }
    startTimerberries("my_timerberries",0); //Aвтозапуск на новой странице с проверкой сохранненого в Storage(если нет - return);
    window.onfocus =   function (){startTimerberries("my_timerberries",0); } //При возврате на вкладку, бывшую неактивной
}());
Когда я убираю
HTML5
1
onClick=startTimerhunting('my_timerhunting',1)
, то
HTML5
1
<form action="">
срабатывает, похоже на какой то конфликт "интересов" между php и js.
Прошу помощи в решении проблемы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.07.2017, 20:43
Ответы с готовыми решениями:

Form action="" не работает в хроме и опере при onClick
Доброго времени суток знатокам! Столкнулся с проблемой, которая не даёт реализовать отправку данных через: &lt;form...

Почему form action обращается к action_page.php, если в файле ему уже указан другой form action?
&lt;form action=&quot;login.php&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt; &lt;div class=&quot;form-group&quot;&gt; ...

Эффект параллакса не работает в хроме и опере
Собственно, проблема в шапке описана. Сайт - http://flynaut.com/grid/. Что еще примечательно - сначала его делал у себя...

6
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.07.2017, 23:23
Цитата Сообщение от Inferial Посмотреть сообщение
Прошу помощи в решении проблемы.
Что по этому поводу говорит консоль браузера?
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
28.07.2017, 09:28
Цитата Сообщение от Inferial Посмотреть сообщение
JavaScript
1
if(!firstSaveVal)firstSaveVal = outElem.innerHTML;
1) Хром выдает ошибку на 18 строке
Цитата Сообщение от Inferial Посмотреть сообщение
HTML5
1
<input id="timerhunting" type="submit" value="Отправиться на охоту" name="submit" onClick="startTimerhunting('my_timerhunting',1)" >
2) onClick в кавычки, хотя это особо роль не играет, у меня твой скрипт вообще не работает
3) А где сама функция startTimerhunting?

Добавлено через 14 минут
Что вообще твой скрипт должен выполнять?
0
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 9
28.07.2017, 21:53  [ТС]
Цитата Сообщение от serj0110 Посмотреть сообщение
2) onClick в кавычки, хотя это особо роль не играет, у меня твой скрипт вообще не работает
да, сорри за ошибку, валидный код ниже:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
(function() {
    function getElem_Time(outElem) {
        var arr = outElem.innerHTML.split(':')
        return 1000*(3600*(+arr[0])+60*(+arr[1])+(+arr[2]));
    }
    function two_dig (t) {
        return  (parseInt(t)/100).toFixed(2).toString().split('.')[1];
    }
    function getHH_MM_SS(sek) {
        return two_dig (sek/3600)+  ':' + two_dig ((sek/60)%60)+ ':' + two_dig (sek%60);
    }
    var timerId;        // ID setInterval
    var firstSaveVal;   // Тут сохраняем начальное значение Time из элемента;
    var  endDate     =  localStorage.endDate;
    startTimerhunting = function(sel,test){  //test == 1 при запуске по кнопке и == 0 при автозапуске на новой странице, 3 - сброс;
        var outElem = document.getElementById(sel); //объект вывода/ввода цифр
        clearInterval(timerId);
        if(!firstSaveVal)firstSaveVal = outElem.innerHTML;
        if(!endDate &&!test) return false; //Aвтозапуск на новой странице;
        var deltaT = getElem_Time(outElem);
        if(test){
            document.getElementById("timerhunting").disabled = true; //запрет на кнопку
            document.getElementById("timerberries").disabled = true;
            outElem.innerHTML = firstSaveVal;
            deltaT = getElem_Time(outElem);
            delete localStorage.endDate;
            endDate = localStorage.endDate;
        }
        var thisTime = +new Date();
        if(!endDate){
            var timeEnd = thisTime + deltaT;
            localStorage.endDate = sel+','+ timeEnd;
        }
        if(endDate &&!test){
            var arr = endDate.split(',');
            var outElem = document.getElementById(arr[0]);
            var timeEnd = +arr[1];
            document.getElementById("timerhunting").disabled = true; //запрет на кнопку
            document.getElementById("timerberries").disabled = true;
        }
        function setOutTime(){
            if(+new Date()>=timeEnd){
                clearInterval(timerId);
                outElem.innerHTML='00:00:00';
                var money; //объявили переменную
                money = '1'; //присвоили значение преременной
                document.getElementById("timerhunting").disabled = false; //разрешение на кнопку
                document.getElementById("timerberries").disabled = false;
                delete localStorage.endDate;
                return;
            }
            var timeToFinish = parseInt((timeEnd - +new Date())/1000);
            outElem.innerHTML = getHH_MM_SS(timeToFinish);
        }  
        setOutTime();
        timerId = setInterval(setOutTime,1000);
    }
    startTimerhunting("my_timerhunting",0); //Aвтозапуск на новой странице с проверкой сохранненого в Storage(если нет - return);
    window.onfocus =   function (){startTimerhunting("my_timerhunting",0); } //При возврате на вкладку, бывшую неактивной
}());
Цитата Сообщение от serj0110 Посмотреть сообщение
Что вообще твой скрипт должен выполнять?
Что делает сам скрипт: при нажатии на кнопку начинается отсчет таймера, сама кнопка блокируется, и не зависимо от перезагрузки или закрытия страницы таймер будет работать.
Суть в проблемы в чем: при нажатии на кнопку со значением "1", это самое значение должно передаваться в save.php, а далее обрабатываться и улетать в базу. Данный результат я получаю только в мозиле и EI. Но в хроме и опере не пашет. В этом и суть вопроса.
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
29.07.2017, 00:08
Цитата Сообщение от Inferial Посмотреть сообщение
Данный результат я получаю только в мозиле и EI. Но в хроме и опере не пашет. В этом и суть вопроса.
За комментировал строки 23, 39 и 48, и скрипт твой заработал.
0
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 9
29.07.2017, 13:07  [ТС]
Цитата Сообщение от serj0110 Посмотреть сообщение
За комментировал строки 23, 39 и 48, и скрипт твой заработал.
Господа, скрипт js рабочий. С ним у меня проблем нету. Работает он во всех топовых браузерах, которых нужно. А если бы и были проблемы со скриптом, то писал бы в другой раздел. Проблема с отправлением данных через <form action="save.php"> в браузерах хром и опера. Но, когда я отключаю скрипт, то передача данных работает. Я так подозреваю, что присутствует какой то конфликт.
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
29.07.2017, 14:06
Цитата Сообщение от Inferial Посмотреть сообщение
Я так подозреваю, что присутствует какой то конфликт.
Это не конфликт, вспомнил, ты же говорил про то что данные не отправляются, ты заменяшь стандартный клик, на свой, вот и данные не отправляются, пробуй отправлять данные с помощью AJAX.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.07.2017, 14:06
Помогаю со студенческими работами здесь

В хроме и опере не работает скрипт со спойлером
Почему у меня в хроме и опере не работает этот скрипт? (подсовываю через 1С:Битрикс) &lt;div class=&quot;divspoiler&quot;&gt;...

Почему кнопка не работает в Хроме и Опере?
Здравствуйте. Не пойму в чем дело... на сайте стоит кнопка, для перехода на внешнюю страницу. НО проблема в том, что она нормально...

&nbsp; не работает в хроме и опере
&amp;nbsp; не работает в хроме и опере , делал в мозиле пока не отркыл в хроме и опере и не ахнул =-O какие альтернативы можно...

Не работает вертикальный скроллинг лендинга в Хроме, Яше, Опере
Забился с решением. Не работает вертикальный скроллинг лендинга в Хроме, Яше, Опере. Только в Мозиле. Сайт-лендинг предполагает плавную...

Не работает form action
При нажатии на клавишу ничего не происходит. Сайт не перенаправляется. Что не так? Как исправить? &lt;!DOCTYPE html&gt; &lt;html&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 25.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 23.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru