为什么从Ajax中的Label读取值不起作用

时间:2012-06-12 13:52:35

标签: javascript asp.net html ajax

我正在尝试使用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?

4 个答案:

答案 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