Не получается вернуть false
Захотел попробовать воспользоваться "ненавязчивым Javascript", как говорится. То есть обработчик повесить абсолютно отдельно от кода. Пример. Сделал в тестовом скрипте форму, два поля, кнопка Submit. Подключил jQuery, написал обработчик на событие submit формы testform (В исходном коде страницы по ссылке все видно). В конце функции return false, но почему-то страница все равно перезагружается. И у меня ВСЕГДА такая фигня. Однажды мне посоветовали вешать onClick="return submit();" (submit() - не событие, а собственная функция) в кнопке на форме и return false в функции, только так у меня с тех пор и работает. Но хотелось бы поудобнее это сделать, да и по красивее, а не получается.
|
Ты пытаешся типо форму по ajax передать, угаваривая браузер необновлять страницу ?
Боюсь такая халтура не прокатит ) Насколько я знаю из сабмит можно только передачу формы запретить. Для ajax попробуй jform Это урок это примеры сам плагин http://umihelp.ru/wp-content/uploads...query.form_.js |
на данной стадии я на аякс плевал) в примере просто хочу, чтобы по сабмиту из формы брались все значения и вставлялись перед формой. Я огромную кучу подобных примеров в инете видел, кстати.
|
Ну тогда ваш код в студию.
return false должен запретить отправку данных, соответственно и страница не должна обновлятся. |
Цитата:
Цитата:
<!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>
|
Это событие клик а не сабмит. Хотя для решения задачи этого выше крыши.
|
код:
$(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'у по сабмиту. |
Цитата:
Полные примеры осилишь сделать? |
Цитата:
$(document).ready(function (){
$('#frm').submit(function (){
$('#frm :text').each(function (){
$('#container').append('<p>'+$(this).val()+'</p>')
})
return false
})
})
|
Цитата:
Додумался сейчас открыть Dragonfly и руками вызвать сабмит. Говорит, что неправильно обращаюсь к элементам формы. Но мне хочется не по имени обращаться отдельно от формы, а именно $(this).указатель_на_объект_фо мы. Потому что если обращаться по имени элемента, то можно на многое напороться. Вобщем хочу написать что-то типа универсального обработчика... |
Вот оно! Родил! Указывать так:
$(this[offset]).val(); только почему-то в переменную вставляется не значение, а код функции... Но зато теперь хоть false возвращает, проблема теперь в другом...) Добавление чуть позже: готово! Ссылаться так: $(this['имя_элемента']).val(); теперь все нормально, всем спасибо за участие! |
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 07:32. |