jQuery form serialize-пустая строка
мой 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" />
когда я запускаю событие click, formData пуста. Я использую jQuery 1.4.2.
4 ответов:
вы должны дать
inputимя элемента. Например:<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. Без имени он не может создать такую строку.отметим, что
nameЭто что-то другое, чемid. Ваша форма также не сработала бы, если бы вы использовали ее "нормальным" способом. каждое поле формы должно быть имя.
хотя это не относится к данному конкретному примеру, то же самое поведение происходит, если один или несколько входных данных формы отключен. Эти входные данные не будут отображаться в сериализованной строке. В моем случае все входные данные формы имели значения, но были отключены, в результате чего возвращалась пустая строка.
Comments