如何使用JScript设置按钮的文本?

时间:2011-08-01 15:03:58

标签: javascript asp.net

我正在尝试在JScript函数中的按钮上设置文本。我正在使用像这样的JScript函数......

    function myfunction(sender, eventArgs)
    {
        wanted_text = window.source_text_field.get_displayText();

        if (document.getElementById("my_span_element") != null)
        {
            document.getElementById("my_span_element").innerText = wanted_text;
        }

        if (document.getElementById("my_button") != null)
        {
            document.getElementById("my_button").text = wanted_text;
        }

    }

有关控件的定义如下......

    <span id="my_span_element" class="some_class"></span>

    <asp:Button id="my_button"
                runat="server"
                class="some_other_class"
                text=""
                Width="48"
                Height="25"
                onclick="do_foo"/>

span元素中的文本设置正确但按钮不受影响。我还尝试了innerTextValueText,并尝试使用this question的答案,但无济于事。

任何人都可以看到我忽略了什么吗?

3 个答案:

答案 0 :(得分:5)

更改按钮的.value属性:

document.getElementById("my_button").value = "new value";

答案 1 :(得分:3)

ASP.Net为服务器控件生成自己的ID。

您需要编写<%= my_button.ClientID %>来获取此生成的ID。

答案 2 :(得分:2)

这里有两个问题:

首先:你使用错误的属性 - 应该是“值”,而不是“文本”

第二:document.getElementById("my_button")无效,因为ASP.NET会将自己的ID分配给控件。如果你看一下生成的标记,你会发现元素的id完全不同。

如果您的javascript位于与<asp:button />控件相同的.aspx页面内,您可以这样做:

document.getElementById("<%= my_button.ClientID %>").value = "some text";