내 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를 사용하고 있습니다.
답변
당신은 포기해야 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
. 양식을 “정상적인”방식으로 사용했다면 양식도 작동하지 않을 것입니다. 모든 양식 필드에는 이름이 필요합니다.
답변
이 특정 예제에는 적용되지 않지만 하나 이상의 양식 입력이 disabled
. 이러한 입력은 직렬화 된 문자열에 표시되지 않습니다. 제 경우에는 모든 양식 입력에 값이 있지만 비활성화되어 빈 문자열이 반환됩니다.
답변
name
입력에 속성 이 없습니다 … 직렬화에 문제가 될 수 있습니다.
<input id="input1" type="text" value="2" name="input1" />
답변
또한 페이지에 동일한 ID를 가진 2 개의 요소가 없는지 확인하십시오.