jQuery предотвратить действие ввода по умолчанию

StackOverflow https://stackoverflow.com/questions/9346102

Вопрос

У меня есть форма 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
});

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

Это было полезно?

Решение

Чтобы справиться с вашей конкретной проблемой (т.е. вставка динамически сгенерированной формы), использовать $.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/

Другие советы

Я настроил jsfiddle:

http://jsfiddle.net/xm679/

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top