我们如何限制ASP.NET中组合框控件的长度?

时间:2011-09-13 09:44:31

标签: asp.net combobox ajaxcontroltoolkit

基本上我希望Title字段(Combo Box)不允许我输入超过40个字符。

你能提供任何指示吗?

1 个答案:

答案 0 :(得分:0)

我看起来控件本身没有这个功能,所以你可能需要编写自己的版本。

您可以创建自定义控件来扩展ComboxBox控件。查看this blog post

另一个想法是使用jQuery来防止将超过40个字符添加到ComboBox控件生成的input控件中:

$(function() {

    var comboxBoxControlInput = $("#<%=comboBoxControlId.ClientID%>$TextBox");
    $(comboxBoxControlInput).keyup(function() {
        limitLenth(this, 40);
    });

});

function limitLength(control, length) {
    var currentContent = $(control).val();
    var currentLength = currentContent.length;
    if(currentLength > length) {
        $(control).val(currentContent.substr(0, length));
        return false;
    }
}

不幸的是,它有点hacky。您必须获取ComboBox控件的ClientID(<%=comboBoxControlId.ClientID%>),然后将$TextBox追加到最后,以便jQuery选择正确的控件。

编辑: 选择正确输入控件的另一种方法是:

$("#<%=comboBoxControlId.ClientId%>").find("input[type=text]");

这将选择ComboBox控件创建的div中的第一个文本输入。