JQuery表单提交到一个aspx - 表单集合为空

时间:2013-12-30 20:21:59

标签: javascript jquery asp.net vb.net forms

我的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的值做了警告,它始终是正确的。谢谢你的帮助!

1 个答案:

答案 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网页,我得到了正确的结果。

我希望它有所帮助。