我有一个文本框,允许用户输入他们的名字,它应该像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
,而我当前的正则表达式并不支持。
真的很感激任何建议。
答案 0 :(得分:0)
如果您的所有文本框都包含相同的数据,那么首先使用 ValidatorHookupControl http://msdn.microsoft.com/en-us/library/aa338815(v=vs.71).aspx注册您的控件以进行验证,并附加相同的JS函数名称,以验证其中的数据。
如果您的文本框中有不同的数据,请使用自定义验证器并在提交点击时触发相同的验证器。在自定义验证器中,浏览每个文本框并调用所需的验证函数。