LastName FirstName验证

时间:2015-01-05 10:42:35

标签: c# asp.net regex javascript

我有一个文本框,允许用户输入他们的名字,它应该像LastName,First Name格式。以下JS完美按预期工作。我将在按钮单击时在OnClientClick事件上调用此函数。但我有n个需要验证的文本框,现在我需要重复复制所有文本框的这个函数。有没有办法重建这个可用于所有文本框,这将减少代码数量和颈部疼痛。

 function onFirstNameLastName() {
        var name = /^\w{1,20}\, \w{1,20}$/ 
        var Id = document.getElementById("bodycontent_Updates");
        var flabels = document.getElementById('<%=((TextBox)Updates.FooterRow.FindControl("txtName")).ClientID %>');
        if (flabels != null) {
            if (flabels.value != "") {
                if (!name.test(flabels.value)) {
                    alert('Please enter Last Name, First Name format');
                    document.getElementById('<%=((TextBox)Updates.FooterRow.FindControl("txtName")).ClientID %>').focus();
                    return false;
                }
                else {
                    return true;
                }
            }
            else if (name.test(flabels.value)) {
                return true;
            }
            else if (flabels.value == "") {
                return true;
            }
        }
    }

我使用的当前正则表达式将允许使用此Clark, Michael之类的名称,但我还需要允许此格式的名称Tim Clark, Duncan Vince,而我当前的正则表达式并不支持。

真的很感激任何建议。

1 个答案:

答案 0 :(得分:0)

如果您的所有文本框都包含相同的数据,那么首先使用 ValidatorHookupControl http://msdn.microsoft.com/en-us/library/aa338815(v=vs.71).aspx注册您的控件以进行验证,并附加相同的JS函数名称,以验证其中的数据。

如果您的文本框中有不同的数据,请使用自定义验证器并在提交点击时触发相同的验证器。在自定义验证器中,浏览每个文本框并调用所需的验证函数。