Предотвращение по умолчанию для формы, созданной Ajax - PullRequest
0 голосов
/ 06 июля 2011

Я получаю форму по клику из файла с именем test.php, в котором содержится следующее:

<form method="post" class="adminTM">
    <input type="hidden" name="execID" value="<?=$_POST['exec']?>" />
    <input type="hidden" name="fromTM" value="<?=$_POST['TM']?>" />
    <input type="text" name="toTM" value="<?=$_POST['TM']?>" />
    <input type="hidden" name="symbol" value="<?=$_POST['symbol']?>" />
    <button class="submitTM">SUBMIT</button>
</form>

Javascript выглядит так:

$(function(){

    $('.adminTMClick').live('click', function(e){
        $(this).data('TM', this.innerHTML);
        $.post('test.php', $(this).data(), function(data){
            $(data).dialog({
                modal: true,
                beforeClose: function(){
                    $(this).remove();
                }
            });
            console.log($('.adminTM'));
            console.log($('.submitTM'));
        });
    });

    $('.submitTM').live('click', function(e){ 
        //originally had .adminTM with submit which failed
        e.preventdefault();
        alert('i am here');
        return false;
    });

});

Как мне сделатьчтобы форма НЕ выполняла действие отправки по умолчанию при нажатии кнопки отправки?

Вот скрипка, демонстрирующая в основном то, что я делаю (мне пришлось немного ее изменить)из-за способа работы jsfiddle): http://jsfiddle.net/maniator/tQVnV/show/

1 Ответ

0 голосов
/ 06 июля 2011

Вы должны использовать событие submit() в форме вместо click() при отправке, так как нажатие клавиши ввода все равно отправит форму (в обход кнопки отправки).

Это должно правильно помешать отправке формы по умолчанию:

$('.adminTM').live('submit', function(e) {
    // execute custom code
    console.log("submit event fired");

    // prevent default submit
    return false;
});

jsFiddle: http://jsfiddle.net/bjorn/tQVnV/11/

...