Метод Jquery serialize () не работает - PullRequest
1 голос
/ 28 февраля 2012

У меня есть базовый HTML и функция JavaScript, как показано ниже.Когда я сериализую форму по форме Id, это работает.Но я хочу сериализовать часть HTML-контента, который не имеет такой формы, как $('.FormReference').serialize().

Что я не могу сделать это?

    $(function () {

        $('#btnLogin').click(function (event) {

            alert($('#form1').serialize());
        });

    });


<form id="form1" runat="server" action="">
    <div>
        <table class="FormReference">
            <tr>
                <td>
                    <input type="text" id="_Username" name="Username" />
                </td>
                <td>
                    <input type="text" id="_Password" name="Password" />
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="button" id="btnLogin" value="Login" />
                </td>
            </tr>
        </table>
    </div>
    </form>

1 Ответ

6 голосов
/ 28 февраля 2012

Из документации :

Метод .serialize() может воздействовать на объект jQuery, который выбрал отдельные элементы формы, такие как <input>, <textarea><select>.Тем не менее, обычно проще выбрать сам тег <form> для сериализации:

Таким образом, у вас есть два варианта:

$('.FormReference').closest('form').serialize(); // serialize the whole form
$('.FormReference').find('input, select, textarea, button').serialize(); // serialize only elements contained within .FormReference
$('.FormReference').find(':input').serialize(); // shorter, but less efficient, alternative
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...