Javascript.RU

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

Не работает "return false" если обращаюсь к нему из присоединенного файла.
Есть форма, через которую я ввожу данные (работа с БД).

Всё работает.
Для того, чтобы страница не перезагружалась, добавил в html (пока набрасывал пример)
$("#myForm").submit(function() {	return false;});

Работает.

Как только я выношу этот Javascript во внешний файл js (и все остальные js файлs обмена с БД) - всё работает, НО не работает указанная выше строчка, т.е. выбрасывает меня на страницу моего скрипта php.
Оставлять код в html-е не комильфо.
В чём может быть дело?
Ответить с цитированием
  #2 (permalink)  
Старый 01.11.2017, 17:45
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

ice99,
Заключить строку в файле в
$(function(){

}

Файл грузить после загрузки jQuery
Ответить с цитированием
  #3 (permalink)  
Старый 03.11.2017, 16:51
Интересующийся
Отправить личное сообщение для ice99 Посмотреть профиль Найти все сообщения от ice99
 
Регистрация: 19.06.2011
Сообщений: 20

Сообщение от Dilettante_Pro Посмотреть сообщение
ice99,
Заключить строку в файле в
$(function(){

}

Файл грузить после загрузки jQuery

Странно. Конструкция

$(function(){
$("#myForm").submit(function() {    return false;});
}

отказывается работать, даже будучи интегрированной в html.
Может дело в синтаксисе?
Ответить с цитированием
  #4 (permalink)  
Старый 03.11.2017, 16:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

ice99,
может jQuery ещё не подгружена?
Ответить с цитированием
  #5 (permalink)  
Старый 03.11.2017, 19:04
Интересующийся
Отправить личное сообщение для ice99 Посмотреть профиль Найти все сообщения от ice99
 
Регистрация: 19.06.2011
Сообщений: 20

Сообщение от рони Посмотреть сообщение
ice99,
может jQuery ещё не подгружена?
Jquery я гружу в шапке, а сам код идёт в тексте страницы ниже.
Вот весь мой код.

Всё работает внутри страницы, а если выношу в отдельный файл - не работает отмеченная строка.

<script>
function GetValue() {
	$.ajax({
		url: 'get_temperature.php',
		dataType: 'json'
	}).done(
		function (data) {
		document.getElementById("anchor_left_1_1_hotspot").innerHTML = "открыт на "+data+"%";
	});
}


$("#sub").click(function(){	$.post($("#myForm").attr("action"), $("#myForm :input").serializeArray(), function(info){$("#result").html(info);});	GetValue();   });


$("#myForm").submit(function() {return false;}); // ВОТ ЭТА СТРОКА НЕ РАБОТАЕТ, ЕСЛИ ВЫНЕСТИ ЕЁ В ОТДЕЛЬНЫЙ ФАЙЛ

function clearInput() {	$("#myForm :input").each( function() {	   $(this).val('');	});}

</script>
Ответить с цитированием
  #6 (permalink)  
Старый 03.11.2017, 19:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

ice99,
попробуйте через event отменить
$("#myForm").submit(function(event) {event.preventDefault()});
Ответить с цитированием
  #7 (permalink)  
Старый 06.11.2017, 22:15
Интересующийся
Отправить личное сообщение для ice99 Посмотреть профиль Найти все сообщения от ice99
 
Регистрация: 19.06.2011
Сообщений: 20

Разобрался.
Указанная строка работает (из присоединенного файла)только если завернуть её в
$(document).ready(function() {

}


Может это и основы, но я как новичок не сразу дошел.
Ответить с цитированием
  #8 (permalink)  
Старый 06.11.2017, 22:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от ice99
Разобрался.
Указанная строка работает (из присоединенного файла)только если завернуть её в
$(document).ready(function() { }
почему тогда у вас не работает решение из поста№2, Dilettante_Pro, предложил вам тоже самое.
$(document).ready(function() { } это тоже что $(function(){
Ответить с цитированием
  #9 (permalink)  
Старый 07.11.2017, 11:42
Интересующийся
Отправить личное сообщение для ice99 Посмотреть профиль Найти все сообщения от ice99
 
Регистрация: 19.06.2011
Сообщений: 20

Сообщение от рони Посмотреть сообщение
почему тогда у вас не работает решение из поста№2, Dilettante_Pro, предложил вам тоже самое.
$(document).ready(function() { } это тоже что $(function(){
Черт побери, наверное когда я пробовал эту конструкцию допустил ошибку синтакиса. Сейчас уже сказать не могу. Попробовал еще раз - конструкция
$(function(){$("#myForm").submit(function() { return false; });});

Работает. Наверное запутался в секвенции скобок.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AddEventListener не правильно работает с классами Flakky Events/DOM/Window 2 27.05.2016 13:51
Не работает JS, если подгружаю код из файла pashin76 Events/DOM/Window 3 24.10.2013 10:25
Проверка, выбран ли checkbox, если обращаюсь к нему через $(this['id']) SkaN jQuery 1 02.03.2012 13:55
не работает onsubmit = ("return false;") czp Общие вопросы Javascript 10 04.11.2011 22:36
Скрипт работает только если подключать js в самом низу html! Pekkonen jQuery 3 26.01.2011 01:44