0

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

我的标签定义是:

<asp:Label ID="totalAmountLabel" runat="server" Text="Label"></asp:Label>

为什么我总是得到undef?

4

4 回答 4

1

试试这个来获取标签的客户端 ID。

var amount = document.getElementById("<%=totalAmountLabel.ClientID%>").innerHTML;
于 2012-06-12T13:56:56.197 回答
1

这是因为在更新面板内时控件会被重命名。如果您有 jQuery 参考,请尝试使用它

$('#<%=totalAmountLabel.ClientID%>')
于 2012-06-12T14:00:54.600 回答
0

我假设<asp:Label>正在生成一个 HTML<label>标记。如果是这样,它没有.value属性。试试.innerHTML吧。

var amount = document.getElementById("totalAmountLabel").value;

应该

var amount = document.getElementById("totalAmountLabel").innerHTML;
于 2012-06-12T13:57:18.363 回答
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

于 2012-06-12T13:57:23.400 回答