Mój 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" />
Kiedy uruchamiam zdarzenie click, formData jest puste. Używam jQuery 1.4.2.
Chociaż nie ma to zastosowania do tego konkretnego przykładu, to samo zachowanie występuje, jeśli co najmniej jedno dane wejściowe formularza to
disabled
. Te dane wejściowe nie pojawią się w serializowanym ciągu. W moim przypadku wszystkie dane wejściowe formularza miały wartości, ale były wyłączone, co skutkowało zwróceniem pustego ciągu.źródło
serialize
rozszerzenie jQuery, które iteruje po wejściach i zawiera wyłączone. Ale o ile wiem, nie da się tego zrobić przy użyciu gotowego do użycia jQuery.W
name
danych wejściowych nie ma atrybutu ... co może być problemem przy serializacji.źródło
Upewnij się również, że na stronie nie ma 2 elementów o tym samym identyfikatorze.
źródło