Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает "return false" если обращаюсь к нему из присоединенного файла. (https://javascript.ru/forum/jquery/71198-ne-rabotaet-return-false-esli-obrashhayus-k-nemu-iz-prisoedinennogo-fajjla.html)

ice99 01.11.2017 17:38

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

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

Работает.

Как только я выношу этот Javascript во внешний файл js (и все остальные js файлs обмена с БД) - всё работает, НО не работает указанная выше строчка, т.е. выбрасывает меня на страницу моего скрипта php.
Оставлять код в html-е не комильфо.
В чём может быть дело?

Dilettante_Pro 01.11.2017 17:45

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

}

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

ice99 03.11.2017 16:51

Цитата:

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

}

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


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

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

отказывается работать, даже будучи интегрированной в html.
Может дело в синтаксисе?

рони 03.11.2017 16:55

ice99,
может jQuery ещё не подгружена?

ice99 03.11.2017 19:04

Цитата:

Сообщение от рони (Сообщение 469104)
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>

рони 03.11.2017 19:10

ice99,
попробуйте через event отменить
$("#myForm").submit(function(event) {event.preventDefault()});

ice99 06.11.2017 22:15

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

}


Может это и основы, но я как новичок не сразу дошел.

рони 06.11.2017 22:24

Цитата:

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

почему тогда у вас не работает решение из поста№2, Dilettante_Pro, предложил вам тоже самое.
$(document).ready(function() { } это тоже что $(function(){

ice99 07.11.2017 11:42

Цитата:

Сообщение от рони (Сообщение 469412)
почему тогда у вас не работает решение из поста№2, Dilettante_Pro, предложил вам тоже самое.
$(document).ready(function() { } это тоже что $(function(){

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

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


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