我遇到的问题是无法将javascript变量传递给服务器端,我知道在这种情况下无法实现,因此我尝试使用jQuery将值设置为asp隐藏字段并在服务器中获取标签的值方面,但不幸的是,我为隐藏字段获取了空值。帮助我解决此问题
码
$(document).ready(function(){
var DataID = "4325";
testDataVal(DataID);
});
function testDataVal(DataID){
<%=RenderMethod(DataID) %> // How to pass javascript variable to server side
}
隐藏场方法:
$(document).ready(function(){
var DataID = "4325";
testDataVal(DataID);
});
function testDataVal(DataID){
$("#<%=hdnDataVal.ClientID %>").val(DataID);
alert($("#<%=hdnDataVal.ClientID %>").val(DataID)); // Here using javascript I can able to set the value and when I alert the value it is displayed
<%=RenderMethod(hdnDataVal.Value) %> // here the hiddenfield value is empty
}
<asp:HiddenField runat="server" ID="hdnDataVal" />
最佳答案
首先...您不应该按照自己的方式混合使用服务器代码和客户端代码。
这是设计代码的糟糕方法。始终尝试分离客户端和服务器代码。它们在不同的时刻,地点和不同的情况下执行……将它们放在一起最终将使您陷入难以调试的错误中。
我敢打赌,您在这里遇到的问题是由于这种编码方式引起的。
您在代码段中说
<%=RenderMethod(hdnDataVal.Value) %> // here the hiddenfield value is empty
当您的页面正在加载并且服务器代码已执行时,$(document).ready()中的代码尚未触发,因为在整个页面加载完成时都会触发。因此,在将任何值放入变量之前,将触发RenderMethod。
关于javascript - 如何将JavaScript变量传递给服务器端方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26988957/