首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否在页面加载时使用JavaScript中的asp:HiddenField值?

是否在页面加载时使用JavaScript中的asp:HiddenField值?
EN

Stack Overflow用户
提问于 2009-09-18 07:07:08
回答 3查看 15.4K关注 0票数 1

我试图在回发和页面加载后在javascript中使用asp:HiddenField控件的值。我尝试过这样的操作,但不起作用。( get函数工作得很好,但我似乎无法让"hidVal“从asp:HiddenFIeld获取值)

代码语言:javascript
运行
复制
<script type="text/javascript" language="javascript">

var hidVal=document.getElementById("<% =hidField.ClientID %>").value;

function Get(checbox)
{   

  if(checbox.checked)hidVal += 1;
        else hidVal -= 1;


  document.getElementById("<% =hidField.ClientID %>").value = hidVal.toString();

}

基本上,我尝试获取隐藏字段的值,在每个选中的复选框中递增它(使用javascript),并在每次回发时将递增的值重新分配给隐藏字段。如果你有任何关于如何工作的想法,请帮助。

谢谢你抽出时间来。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-18 07:19:08

记住把javascript部分放在结束标记之前,这样当它出现时,HiddenField就已经呈现出来了,可以使用了。

并且,对于CMS答案,不要忘记使用:

代码语言:javascript
运行
复制
<asp:CheckBox ID="chk" runat="server" onclick="Get();" />
票数 1
EN

Stack Overflow用户

发布于 2009-09-18 07:15:20

你应该在get函数中获得数值,你还会遇到类型强制问题,因为输入的‘hidField’属性是一个字符串,你直接递增它,而不是先把它转换成数字:

代码语言:javascript
运行
复制
function Get(checbox) {   
  var hidField = document.getElementById("<%=hidField.ClientID %>"),//get element
      hidVal = +hidField.value || 0; // get the value and convert it to number,
                                     // set 0 if conversion fails

  if(checbox.checked) {
    hidVal++; 
  } else {
    hidVal--;
  }
  hidField.value = hidVal; // set the value back
}
票数 3
EN

Stack Overflow用户

发布于 2009-09-18 07:42:58

据我所知,我编写了以下代码。请复习。

代码语言:javascript
运行
复制
<script type="text/javascript" language="javascript">

    function Get(checbox)
    {
    var hidVal;
    if(document.getElementById("<% =hidField.ClientID %>").value!="")
    {
    hidVal=parseInt(document.getElementById("<% =hidField.ClientID %>").value);
    }
    else 
    hidVal=0;

      if(checbox.checked)hidVal += 1;
            else hidVal -= 1;
            alert(hidVal);
      document.getElementById("<% =hidField.ClientID %>").value = hidVal.toString();

    }

现在,我在我的aspx页面中添加了以下代码:

代码语言:javascript
运行
复制
<div>
        <asp:CheckBox ID="chk1" Text="1" runat="server" onclick="javascript:Get(this);" />
                    <asp:CheckBox ID="chk2" Text="2" runat="server" onclick="javascript:Get(this);" />
                    <asp:CheckBox ID="chk3" Text="3" runat="server" onclick="javascript:Get(this);" />
                    <asp:CheckBox ID="chk4" Text="4" runat="server" onclick="javascript:Get(this);" />
                    <asp:CheckBox ID="chk5" Text="5" runat="server" onclick="javascript:Get(this);" />

                    <asp:HiddenField ID="hidField" runat="server" />
                    <asp:Button ID="btnSubmit" runat="server" Text="Create" OnClick="btnSubmit_Click" />
    <hr/>
      <asp:Label ID="lblHidValue" runat="server"></asp:Label>
   </div>   

现在在aspx.cs中,page_load包含以下内容:

代码语言:javascript
运行
复制
 lblHidValue.Text ="In page_load "+ hidField.Value;

按钮点击事件如下:

代码语言:javascript
运行
复制
protected void btnSubmit_Click(object sender, EventArgs e)
    {
        lblHidValue.Text += "<br/>In button click " + hidField.Value;

    }

请检查这些是否可以解决您的问题。

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

https://stackoverflow.com/questions/1442968

复制
相关文章

相似问题

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