在jQuery手风琴改变事件中没有持久存在Active Index

时间:2010-02-01 19:17:19

标签: asp.net jquery jquery-ui

我有一个asp.net aspx页面,在该页面上我有一个隐藏的输入字段,其id和paneIndex。但是,当我加载页面时,警报显示索引1在第一次加载时是正确的,但是如果我打开窗格3,例如,警报仍显示1。我做错了吗?

在Custom.js文件中,我有以下代码:

$(document).ready(function() {

    $("#accordion").accordion({
        active: 1,
        collapsible: true,
        autoHeight: false,
        change: function(event, ui) {
            var activeIndex = $("#accordion").accordion('option', 'active');
            $("#paneIndex").val(activeIndex);

           //alert(activeIndex);
       }
    });
});

在我的服务器端按钮单击,我有以下代码:

string activeIndex = Request.Form["paneIndex"];
string script = string.Format(@"<script type=""text/javascript"">var paneIndex = 
                                {0};</script>", activeIndex);

  if(!ClientScript.IsStartupScriptRegistered("JSScript"))
      ClientScript.RegisterStartupScript(this.GetType(),"JSScript", script);

1 个答案:

答案 0 :(得分:0)

我刚刚在这里测试了jquery脚本,它没有表单提交/回发,对我来说很好。

因此,我认为您的问题与表单提交/ activeIndex变量未正确设置有关。

如果您使用asp.net,是否需要提交表单而不是使用回发? 如果可能的话,我总是尝试回发到服务器而不是表单提交。

如果您使用Visual Studio,您还可以尝试在服务器端代码上设置断点,并调查Request.Forms集合在提交后包含正确的变量。