Мой HTML:
<script type="text/javascript">
$(function() {
$("#bt1").click(function() {
var f = $("#form1");
var formData = f.serialize();
alert(formData);
});
});
</script>
<div id="div1">
<form id="form1" action="/Home/Test1" method="post" name="down">
<div id="div2">
<input id="input1" type="text" value="2" />
</div>
</form>
</div>
<input type="submit" id="bt1" />
Когда я разжигаю событие щелчка, formData пуст. Я использую jQuery 1.4.2.
Вы должны ввести вход
элемент имя. Например: [
<form id="form1" action="/Home/Test1" method="post" name="down">
<div id="div2">
<input id="input1" type="text" value="2" name="foo"/>
</div>
</form>
] даст вам в окне предупреждения foo = 2
.
.serialize ()
берет имя и значение полей формы и создает строку вида name1 = value1 & name2 = value2
. Без имени он не может создать такую строку.
Обратите внимание, что имя
отличается от id
. Ваша форма также не сработала бы, если бы вы использовали ее "обычным" способом. Каждому полю формы необходимо имя.
На входе нет атрибута name
... это может быть проблемой для сериализации.
<input id="input1" type="text" value="2" name="input1" />