我的HTML文件中有以下代码(为了节省空间和时间而过度监控):
<form role="form" name="popupForm" id="popupForm">
<input type="hidden" name="season1" id="season1" value="fall" />
<input type="hidden" name="season2" id="season2" value="fall" />
<input type="hidden" name="season3" id="season3" value="fall" />
<input type="hidden" name="ITEMCOUNT" id="ITEMCOUNT" value="3" />
</form>
<button type="button" class="btn btn-primary" id="orderSave">Save Changes</button>
然后我有一个被调用的JQuery例程:
$("#orderSave").click(function () {
$.post("ProductPopupLightboxSave.aspx", $('form#popupForm').serialize(), function (data) {
$("#productModal").modal("hide");
});
});
在ProductPopupLightboxSave.aspx文件中,我有以下代码:
If IsNumeric(Request("ITEMCOUNT")) Then intItemCount = CInt(Request("ITEMCOUNT"))
intItemCount中的值用于For ... Next循环以进行交互并获取单个元素“season1”,“season2”和“season3”(显然数字因产品而异)并保存信息到数据库。问题是,当它到达时,请求(“ITEMCOUNT”)什么都不是。事实上,它似乎根本没有序列化我的表单数据。
更新: 我使用了name元素,但没有修复任何内容。我注意到这是一个.NET应用程序,它在母版页中有一个RADSCRIPTMANAGER标记。它有一个开放的表单标签,但不是一个关闭的标签(它由另一个开发人员完成,所以我不知道原因)。看起来这会妨碍我,因为我刚刚将FORM标记更改为具有完全相同ID的DIV标记,并且只更改了表单数据序列化。
我做错了什么?我甚至对#ITEMCOUNT的值做了警告,它始终是正确的。谢谢你的帮助!
答案 0 :(得分:1)
我已经在我的计算机上使用你的表单进行了测试并且它有效,但是我在IE 10中有一个奇怪的行为。所以我改变了我的代码并且它有效,在下面找到它,使用.ajax而不是.post
<form role="form" id="popupForm">
<input type="hidden" id="season1" name="season1" value="fall" />
<input type="hidden" id="season2" name="season2" value="fall" />
<input type="hidden" id="season3" name="season3" value="fall" />
<input type="hidden" id="ITEMCOUNT" name="ITEMCOUNT" value="3" />
</form>
更改按钮以防万一,它也与其他按钮一起使用。
<button type="button" class="btn btn-primary" id="Button1"> More Save</button>
并设置.ajax帖子
$("#Button1").click(function() {
$.ajax({
url: 'Default.aspx',
type: 'POST',
data: $('form#popupForm').serialize(),
success: function(data) {
alert('success');
},
error: function() {
alert("error");
}
});
});
出于测试目的,我添加了关于成功和错误的警报,我发布到default.aspx网页,我得到了正确的结果。
我希望它有所帮助。