Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не получается вернуть false (https://javascript.ru/forum/jquery/21922-ne-poluchaetsya-vernut-false.html)

SkaN 29.09.2011 14:09

Не получается вернуть false
 
Захотел попробовать воспользоваться "ненавязчивым Javascript", как говорится. То есть обработчик повесить абсолютно отдельно от кода. Пример. Сделал в тестовом скрипте форму, два поля, кнопка Submit. Подключил jQuery, написал обработчик на событие submit формы testform (В исходном коде страницы по ссылке все видно). В конце функции return false, но почему-то страница все равно перезагружается. И у меня ВСЕГДА такая фигня. Однажды мне посоветовали вешать onClick="return submit();" (submit() - не событие, а собственная функция) в кнопке на форме и return false в функции, только так у меня с тех пор и работает. Но хотелось бы поудобнее это сделать, да и по красивее, а не получается.

DjDiablo 29.09.2011 14:34

Ты пытаешся типо форму по ajax передать, угаваривая браузер необновлять страницу ?
Боюсь такая халтура не прокатит )
Насколько я знаю из сабмит можно только передачу формы запретить.

Для ajax попробуй jform

Это урок
это примеры
сам плагин http://umihelp.ru/wp-content/uploads...query.form_.js

SkaN 29.09.2011 14:42

на данной стадии я на аякс плевал) в примере просто хочу, чтобы по сабмиту из формы брались все значения и вставлялись перед формой. Я огромную кучу подобных примеров в инете видел, кстати.

DjDiablo 29.09.2011 14:47

Ну тогда ваш код в студию.
return false должен запретить отправку данных, соответственно и страница не должна обновлятся.

ksa 29.09.2011 14:55

Цитата:

Сообщение от SkaN
Не получается вернуть false

Смотря как делаешь...

Цитата:

Сообщение от SkaN
хочу, чтобы по сабмиту из формы брались все значения и вставлялись перед формой

Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function (){
	$('#frm :submit').click(function (){
		$('#frm :text').each(function (){
			$('#container').append('<p>'+$(this).val()+'</p>')
		})
		return false
	})
})
</script>
</head>
<body>
<div id='container'></div>
<form id='frm'>
	<input type='text' />
	<input type='text' />
	<input type='submit' value='Go' />
</form>
</body>
</html>
</body>
</html>

DjDiablo 29.09.2011 15:01

Это событие клик а не сабмит. Хотя для решения задачи этого выше крыши.

SkaN 29.09.2011 15:06

код:
$(function() {
	$("form#testform").submit(function() {
		var name = $(this)[0].val();
		var text = $(this)[1].val();
		$("h1").insertBefore(this).html(name);
		$("p").insertBefore(this).html(text);
		return false;
	});
});

хочу, чтобы работало так. Ну или по click'у по сабмиту.

ksa 29.09.2011 15:13

Цитата:

Сообщение от SkaN
хочу, чтобы работало так.

А оно не работает?

Полные примеры осилишь сделать?

ksa 29.09.2011 15:15

Цитата:

Сообщение от DjDiablo
Это событие клик а не сабмит.

Лёгким движением руки брюки превращаются в оригинальные шорты... (с)

$(document).ready(function (){
	$('#frm').submit(function (){
		$('#frm :text').each(function (){
			$('#container').append('<p>'+$(this).val()+'</p>')
		})
		return false
	})
})

SkaN 29.09.2011 15:39

Цитата:

Сообщение от ksa (Сообщение 128699)
Полные примеры осилишь сделать?

пфф, извините, конечно. Будет желание и время - будут очень хорошие примеры. Желание есть, но проблема только в нерабочести.
Додумался сейчас открыть Dragonfly и руками вызвать сабмит. Говорит, что неправильно обращаюсь к элементам формы. Но мне хочется не по имени обращаться отдельно от формы, а именно $(this).указатель_на_объект_фо мы. Потому что если обращаться по имени элемента, то можно на многое напороться. Вобщем хочу написать что-то типа универсального обработчика...


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