Сделайте тег действовать как кнопка ввода - PullRequest
3 голосов
/ 26 января 2012

Как я могу заставить <a href="http://test/com/tag/test">Test</a> действовать как кнопка формы? И действуя как кнопка формы, я имею в виду, что при нажатии на ссылку, чтобы сделать method="get" или сообщение, чтобы иметь возможность получить его путем получения или отправки.

Не обязательно должна быть ссылка, я могу адаптироваться, чтобы она работала так!

Ответы [ 3 ]

5 голосов
/ 26 января 2012

Если вы хотите отправить форму, используя ссылку:

HTML -

<form action="my-page.php" id="my-form" method="post">...</form>
<a href="#" id="form-submit">SUBMIT</a>

JS -

$(function () {
    $('#form-submit').on('click', function () {

        //fire the submit event on the form
        $('#my-form').trigger('submit');

        //stop the default behavior of the link
        return false;
    });
});

Документы для trigger(): http://api.jquery.com/trigger

Если вы хотите отправить форму, не покидая страницы, вы можете использовать вызов AJAX:

$(function () {
    $('#form-submit').on('click', function () {

        //cache the form element for use later
        var $form = $('#my-form');
        $.ajax({
            url     : $form.attr('action') || '',//set the action of the AJAX request
            type    : $form.attr('method') || 'get',//set the method of the AJAX reqeuest
            data    : $form.serialize(),
            success : function (serverResponse) {

                //you can do what you want now, the form has been submitted, and you have received the serverResponse
                alert('Form Submitted!');
            }
        });
    });

    $('#my-form').on('submit', function () {

        //stop the normal submission of the form, for instance if someone presses the enter key inside a text input
        return false;
    });
});

Документы для $.ajax(): http://api.jquery.com/jquery.ajax

Обратите внимание, что .on() является новым в jQuery 1.7 и в этом случае аналогично использованию .bind().

2 голосов
/ 26 января 2012
<form ....>
    <a id="whatever" href="http://test/com/tag/test">Test</a>
</form>

Если в вашей форме есть какой-либо элемент с идентификатором, вы используете jQuery, чтобы выбрать этот идентификатор и прикрепить к нему событие click.В этом конкретном случае он также будет использовать get для запроса данных у /whatever.php, и вам следует настроить его так, чтобы он использовал get/post и сериализовал данные форм или не соответствовал вашим потребностям.

$("#whatever").click(function(){
  $.get("/whatever.php");
});
0 голосов
/ 26 января 2012

и без jQuery

<form id="your_form">
    <a href="javascript:{}" onclick="document.getElementById('your_form').submit(); return false;">submit</a>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...