jQuery предотвращает действие ввода по умолчанию - PullRequest
1 голос
/ 19 февраля 2012

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

 return false;

, а затем я попытался

event.preventDefault();

событие, являющееся именем обратного вызова или как вы его называете.

function(event) {
    event.preventDefault();
};

Вот HTMLЯ использую прямо сейчас:

<form class="main_search" method="POST" action="ajaxsearch.php">
    <input type="text" class="editable" placeholder="Search">
</form>

Вот тестовый JavaScript, который я настроил:

$('.main_search').submit(function(event) {
    event.preventDefault(console.log(event)); //Log the event if captured
});

Ни один из методов не работает, но странная часть заключается в том, что они работают с разными вещами, такими как кнопки, но онине работай над этой формойЯ что-то здесь упускаю?Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

Для решения вашей конкретной проблемы (например, вставка динамически сгенерированной формы ), используйте $.on(). Вам лучше не использовать document.body в качестве родительского наблюдателя (как, по сути, $.live()) с $.on(), поэтому будет уместно следующее (учитывая вашу фактическую разметку):

<div id="searches">
    <form class="main_search" method="POST" action="ajaxsearch.php">
        <input type="text" class="editable" placeholder="Search">
    </form>
</div>

var $main_search = $('.main_search'),
    $searches = $('#searches');

$searches.on('submit', '.main_search', function(event) {
    event.preventDefault();
    console.log(event); //Log the event if captured
});

setInterval(function(){
    $searches.append($main_search.clone());
}, 5000);

http://jsfiddle.net/5TVGn/2/

1 голос
/ 19 февраля 2012

Я установил JSfiddle:

http://jsfiddle.net/XM679/

Может быть, вы забыли обернуть его в $(document).ready(function() {}? Если это не решит проблему: поскольку скрипка работает - нам нужен ваш контекст, чтобы помочь больше.

...