【问题标题】:Javascript not showing .value?Javascript没有显示.value?
【发布时间】:2014-07-23 14:52:31
【问题描述】:

我正在尝试使用 JavaScript 将文本框文本设置为“”或 NULL。我正在使用 Visual Studio 2013 并创建了一个 asp.net Web 应用程序。我也在使用 Telerik 控件(不确定这是否会影响任何事情)。我目前有一个组合框(ddlMaritalStatus)和一个文本框(txtSpouseName)。我目前有 JavaScript,当 ddlMaritalStatus 选择的文本设置为单个然后 txtSpouseName 被禁用。当 ddlMaritalStatus 改回单身时,我还希望 txtSpouseName 的文本被删除。我一直在通过 Google 和堆栈溢出进行研究,但没有遇到可行的选项。我找到的每个答案都说要使用document.getElementById("txtSpouseName").value = "";,但我的程序没有使用 JavaScript 读取 .value。

<telerik:RadComboBox ID="ddlMaritalStatus" runat="server" EmptyMessage="--Select--" OnClientSelectedIndexChanged="DisableBox" TabIndex="15" AutoPostBack="false"></telerik:RadComboBox>
                <script type="text/javascript">
                    function DisableBox() {
                        var TextBox = $find("<%=txtSpouseName.ClientID %>");
                        var Location = $find("<%=ddlMaritalStatus.ClientID %>");
                                if (Location.get_text().length < 7) {
                                    TextBox.disable();
                                    document.getElementById("txtSpouseName").value = "";
                                }
                                else {
                                    TextBox.enable();
                                }
                            }
                </script>

<telerik:RadTextBox ID="txtSpouseName" runat="server" Enabled="false" AutoPostBack="false" TabIndex="16"></telerik:RadTextBox>

这是我到目前为止的代码。任何帮助或建议都会很棒!谢谢!

编辑 我正在使用 IE 11。

【问题讨论】:

  • 您的浏览器Console是否有任何客户端错误?例如$ - $find vs $.find(jquery vs 我认为的 ms ajax)?
  • @EdSF 当我从 '$find 切换到 $.find' 时不喜欢你要我检查的内容吗?
  • 不完全是(只是检查你正在使用什么/哪个库)。您使用什么来检查客户端错误 - re: 找出您的页面中是否存在 Javascript 错误?例如 Chrome (CTRL+SHIFT+I) 或 IE (F12) 开发工具 -> 控制台(这将显示应该有帮助的 Javascript 错误)。此外,您使用的是 ClientID"txtSpouseName"(硬编码)...
  • @EdSF 好的,我正在使用 IE。我按 F12 并进入控制台。我确实有任何错误,也没有与 javascript 相关的警告或消息。当我尝试从 ddlMaritalStatus 中选择一个值时,确实会出现错误提示 0x800a01b6 - JavaScript 运行时错误:对象不支持属性或方法 'get_text' 这有帮助吗?感谢您的帮助!

标签: javascript asp.net visual-studio-2013 telerik


【解决方案1】:

请尝试以下代码 sn-p。

<script type="text/javascript">

    function ClientSelectedIndexChanged(sender, args) {
        if (sender.get_selectedItem().get_value() == "Single") {
            document.getElementById(sender.get_id().replace("ddlMaritalStatus", "txtSpouseName")).value = "";
            document.getElementById(sender.get_id().replace("ddlMaritalStatus", "txtSpouseName")).disabled = "disabled";
        }
        else {
            document.getElementById(sender.get_id().replace("ddlMaritalStatus", "txtSpouseName")).value = "";
            document.getElementById(sender.get_id().replace("ddlMaritalStatus", "txtSpouseName")).disabled = "";
        }
    }

</script>
...........
...........
<asp:Panel ID="Panel1" runat="server">
    <telerik:RadComboBox ID="ddlMaritalStatus" runat="server" OnClientSelectedIndexChanged="ClientSelectedIndexChanged">
        <Items>
            <telerik:RadComboBoxItem Value="Married" Text="Married" />
            <telerik:RadComboBoxItem Value="Single" Text="Single" />
        </Items>
    </telerik:RadComboBox>
    <asp:TextBox ID="txtSpouseName" runat="server"></asp:TextBox>
</asp:Panel>

如果有任何问题,请告诉我。

【讨论】:

  • 感谢您的回复!文本现在运行良好,但禁用不是。除非选择“已婚”,否则我需要禁用 txtSpouseName。我将您的代码放入我的项目中,它允许一直启用 txtSpouseName。有什么建议么?谢谢!
  • 您能否提供您的浏览器和文本框的详细信息?
  • 我将信息添加到原始帖子中。如果您需要更多信息,请告诉我!感谢您的帮助!
  • 我在这里找到了用于禁用文本框的原始代码 link 但现在当我尝试将两者结合起来时,我收到一条错误消息“JavaScript 运行时错误:无法获取未定义的属性‘启用’或空引用”
  • 您的代码运行正常。有空请告诉我,我们将在 stackoverflow 聊天中讨论这个问题。
【解决方案2】:

这是我从另一个帖子中找到的答案。这会在选择“已婚”时禁用文本框,并在选择“单身”时擦除并禁用文本框。感谢所有试图帮助我的人!

function DisableBox(sender, args) {

var TextBox = $find("<%=txtSpouseName.ClientID %>");

if (args.get_item().get_text() == "Married") {

    TextBox.enable();

}

else {

    TextBox.clear();

    TextBox.disable();

}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2023-03-21
    • 1970-01-01
    • 2022-11-02
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多