如果你使用<input />作为文本框而不是<asp:textbox>,这被认为是不好的做法吗?</asp:textbox>

时间:2012-03-02 12:28:20

标签: c# javascript asp.net

我有一个包含表单和按钮的ASP.NET页面。为了使用OnKeyPress和javascript函数(阻止用户使用回车键而不添加FilteredTextBoxExtender)属性,我必须将<asp:Textbox>更改为{{1与<input>

这被认为是不好的做法吗?或者是否应该使用有效的情况?

要确保此问题不是主观的 - 是否还有其他方法可以阻止用户在输入ASP.NET文本框时使用回车键? (不将代码放在后面的代码中)

5 个答案:

答案 0 :(得分:3)

一般情况下,只有在严格要求的情况下才应使用Asp.Net控件,而经典HTML要快得多,因为他们不需要任何服务器细化来呈现

答案 1 :(得分:3)

如果您希望通过.NET代码隐藏访问您的输入,那么最好使用TextBox控件。您可以在输入上放置runat = server,但仅限于必须时。

如果是我,我会使用,添加一个ID并尽可能设置ClientIDMode =“Static”,或者添加一个CssClass =“class”的类,然后使用jQuery来处理onKeyPress,即使是这样的这样:

$('.class').on('change', function() {

});

答案 2 :(得分:2)

您无需更改控件类型即可在javascript中使用客户端事件。

该控件具有ClientId属性,可用于将事件绑定到(例如,使用getElementById)。

答案 3 :(得分:1)

您可以将JavaScript添加到<asp:TextBox />。您可以使用控件的ClientID附加JavaScript,也可以使用

将其添加到代码隐藏中
  

MyTextBox.Attributes.Add(“onKeyPress”,“myJavaScriptFunction()”);

答案 4 :(得分:1)

您应该只使用asp:TextBox的ClientID 这是一个使用jQuery的例子:

<asp:TextBox ID="inputTB" runat="server"></asp:TextBox>

<script language="javascript" type="text/javascript">
    $('#<%=inputTB.ClientID%>').keypress(function (e) {
        if (e.which == 13) // return key
        {
            return false;
        }
    });
</script>