首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery滑块在回发时保持值

jQuery滑块在回发时保持值
EN

Stack Overflow用户
提问于 2013-05-08 06:43:14
回答 3查看 2.3K关注 0票数 2

我正在使用一个jQuery UI滑块,除了这个:我有一个ASP.NET隐藏字段,用来存储用户用滑块选择的任何内容。比方说25或50。我需要该服务器控件,以便在执行其他步骤后可以使用它的值。它可以工作,但当页面执行回发时,滑块会恢复到原来的位置。换句话说,用户在滑块上选择50条,发送到服务器并检索50条记录。但是滑块回到了25,因为那是它的初始值。我如何修复这个问题,使其保留存储在隐藏字段控件中的设置(或用户选择的内容)?

我在这里添加了代码:

代码语言:javascript
运行
复制
 $(document).ready(function () {
        //setup slider
        $('#slider').slider({
            range: "max",
            min: 25,
            step: 25,
            max: 100,
            value: 75,
            slide: function (event, ui) {
                $('#radiusText').val(ui.value);
                //set the hiddenfield for server postback of radius
                $("#<%= Radius.ClientID%>").val(ui.value);
            }
        });
        $('#radiusText').val($('#slider').slider('value'));


    });
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-08 21:25:19

我最终在滑块调用外部设置了一个变量,该变量获取隐藏字段的值,并在隐藏字段上将初始值设置为75。

代码语言:javascript
运行
复制
        $(document).ready(function () {
        var setRadius = $("#<%= Radius.ClientID%>").val();
        //setup slider
        $('#slider').slider({
            range: "max",
            min: 25,
            step: 25,
            max: 100,
            value: setRadius,
            slide: function (event, ui) {
                $('#radiusText').val(ui.value);
                //set the hiddenfield for server postback of radius
                $("#<%= Radius.ClientID%>").val(ui.value);
            }
        });
        $('#radiusText').val($('#slider').slider('value'));
    });
票数 1
EN

Stack Overflow用户

发布于 2013-05-08 07:15:26

查看ASP页的ispostback属性

http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx

代码语言:javascript
运行
复制
public string _hiddenvalue; //make it public so that you can read it
if(ispostback)
{
  _hiddenvalue = Request.Form["hiddenfield"];              
}

然后,您所要做的就是将公共属性_hiddenvalue分配给前端的一个变量

代码语言:javascript
运行
复制
var _slideVal = <%= _hiddenvalue %>
票数 3
EN

Stack Overflow用户

发布于 2013-05-08 21:33:00

代码语言:javascript
运行
复制
function SetSlider()
    {   
              $('#slider').slider({
                    range: "max",
                    min: 25,
                    step: 25,
                    max: 100,
                    value: 75,
                    slide: function (event, ui) {
                        $('#radiusText').val(ui.value);
                        //set the hiddenfield for server postback of radius
                        $("#<%= Radius.ClientID%>").val(ui.value);
                    }
                });
    }

在服务器端,在PageLoad事件上调用javascript函数。

代码语言:javascript
运行
复制
if(!ispostback)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript",
   "javascript:SetSlider();", true);
}

如果我不能很好地理解你的问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16429787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档