我正在尝试使用Ajax读取Label(asp)中的值。 但我总是得到Undefind:|
我的代码是:
function NIS2USD() {
var from = document.getElementById("NIS").value;
var to = document.getElementById("USD").value;
var amount = document.getElementById("totalAmountLabel").value;
request = new XMLHttpRequest();
request.onreadystatechange = ProcessResponse;
request.open("GET", "Convert.aspx?from=" + num1 + "&to=" + num2 + "&amount=" + amount, true);
request.send();
}
function USD2NIS() {
var from = document.getElementById("USD").value;
var to = document.getElementById("NIS").value;
var amount = document.getElementById("totalAmountLabel").value;
request = new XMLHttpRequest();
request.onreadystatechange = ProcessResponse;
request.open("GET", "Convert.aspx?from=" + num1 + "&to=" + num2 + "&amount="+amount, true);
request.send();
}
function ProcessResponse() {
if (request.readyState == 4 && request.status == 200) {
document.getElementById("totalAmountLabel").innerHTML = request.responseText;
}
}
和我对标签的def是:
<asp:Label ID="totalAmountLabel" runat="server" Text="Label"></asp:Label>
为什么我总是得到undef?
答案 0 :(得分:1)
尝试此操作以获取标签的客户端ID。
var amount = document.getElementById("<%=totalAmountLabel.ClientID%>").innerHTML;
答案 1 :(得分:1)
这是因为控件在更新面板内重命名。 如果你有jQuery引用
,请尝试使用它$('#<%=totalAmountLabel.ClientID%>')
答案 2 :(得分:0)
我认为<asp:Label>
正在生成HTML <label>
标记。如果是,则它没有.value
属性。请改为.innerHTML
。
var amount = document.getElementById("totalAmountLabel").value;
应该是
var amount = document.getElementById("totalAmountLabel").innerHTML;
答案 3 :(得分:0)
要么将javascript更改为(必须在页面中定义javascript代码才能使其工作,而不是因为<%= %>
而在JS文件中):
document.getElementById("<%= totalAmountLabel.ClientID %>").innerHTML = request.responseText;
或保留原样的javascript并将标签更改为(对于4.0):
<asp:Label ID="totalAmountLabel" runat="server" Text="Label" ClientIDMode="static"></asp:Label>
静态的客户端ID模式确保客户端上的ID实际上是totalAmountLabel