我试图在回发和页面加载后在javascript中使用asp:HiddenField控件的值。我尝试过这样的操作,但不起作用。( get函数工作得很好,但我似乎无法让"hidVal“从asp:HiddenFIeld获取值)
<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),并在每次回发时将递增的值重新分配给隐藏字段。如果你有任何关于如何工作的想法,请帮助。
谢谢你抽出时间来。
发布于 2009-09-18 07:19:08
记住把javascript部分放在结束标记之前,这样当它出现时,HiddenField就已经呈现出来了,可以使用了。
并且,对于CMS答案,不要忘记使用:
<asp:CheckBox ID="chk" runat="server" onclick="Get();" />发布于 2009-09-18 07:15:20
你应该在get函数中获得数值,你还会遇到类型强制问题,因为输入的‘hidField’属性是一个字符串,你直接递增它,而不是先把它转换成数字:
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
}发布于 2009-09-18 07:42:58
据我所知,我编写了以下代码。请复习。
<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页面中添加了以下代码:
<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包含以下内容:
lblHidValue.Text ="In page_load "+ hidField.Value;按钮点击事件如下:
protected void btnSubmit_Click(object sender, EventArgs e)
{
lblHidValue.Text += "<br/>In button click " + hidField.Value;
}请检查这些是否可以解决您的问题。
https://stackoverflow.com/questions/1442968
复制相似问题