2011-08-02 20 views
0

我有这样的HTML标签在服务器端的价值:改变html标签使用JavaScript和获得

<span id="pricea" runat="server">13323223</span>,我改变这个值使用JavaScript:

<script type="text/javascript"> 
$(function() { 
    $("#pricea").hover(function() { 
     document.getElementById("pricea").innerHTML = "1234" 
     }); 
}); 
</script> 

现在,当我点击后回传asp:Button,跨度值返回为原始值,我无法获取由JavaScript更改的新值。

我想,也许使用的Request.Form(“pricea”),但它似乎对输入字段进行唯一的工作,所以我的问题是:

我怎么能得到这个跨度值(这是后由JavaScript改变)在服务器端?

感谢您的帮助

+0

所以你只更新客户端上的跨度innerHTML?你不觉得你需要将更改存储在服务器上或获取一组新的数据来显示吗?您可以使用$ .ajax函数更新值,而无需刷新页面。 – Rumplin

回答

2

HTML文档不回发到服务器,仅在表单中的字段的内容。

如果您想要将值发送回服务器,则必须将其置于表单字段中。您可以将隐藏字段添加到表单,您可以保持跨度的内容的副本:

<asp:Hidden name="pricea_copy" id="pricea_copy" /> 

现在,当你改变span,你也改变了隐藏字段:

document.getElementById("pricea").innerHTML = "1234"; 
document.getElementById("pricea_copy").value = "1234"; 

回发后,您可以使用pricea_copy.Value访问隐藏字段中更改的值,并使用该值设置新页面的span标签的内容。

+0

好的谢谢Guffa,如果它是我唯一的选择,我会使用你的建议 – baaroz

+0

@baaroz:这不是唯一的选择,而是最简单的选择之一。另一个选择是例如在浏览器中创建一个cookie,以将值发送到服务器。 – Guffa

+0

是的,但所有这些选项都不理想,有点笨拙。我喜欢“reqeust.form”,谢谢 – baaroz