jquery验证用户已将文本输入到2个文本框中的1个

时间:2012-07-10 08:59:03

标签: jquery html5

嗨,我很难找到答案,如果可以的话?

我有一个包含3个文本框的登录表单:UserID,邮政编码,出生日期

用户ID很好我可以添加一个必需的属性来验证,但是我想要验证他们还将数据输入到其他2个文本框中的一个,所以要么是邮政编码,要么是出生日期。我不想使用asp.net自定义验证器,因为它们很痛苦,并且希望这可以在html5 / jQuery中完成。这些文本框位于.net用户控件上,所以不确定这是否是一个问题,因为如果我使用像...(“#form1”)那样的东西我找不到表单有问题。确认

3 个答案:

答案 0 :(得分:1)

您可能需要使用服务器控件的ClientID来在javascript中访问它们。您可以在提交按钮的单击事件上绑定javascript并执行任何验证。

$('#<%= submitButton.ClientID %>').click(function (){    
  textBox1Value =  $('#<%= textBox1.ClientID %>').val();
  textBox2Value =  $('#<%= textBox2.ClientID %>').val();
  //do validation on both textboxes here

  if(!conditionFormValidated)  //To prevent submit if form validation fail
     return false;
});

答案 1 :(得分:0)

您应该检查文本框中的所有三个字段值。应该在表单提交中检查。如果其中两个存在,那么您应该重新初始化您的validate方法并调用它。

答案 2 :(得分:0)

这就是我这样做的方法,验证向导控件上的2个文本框中有1个有值。

if (!Page.IsPostBack)
{
  Button btn = (Button)Wizard.FindControl("StartNavigationTemplateContainerID").FindControl("StartNextButton");
  string script = "$(\"#" + btn.ClientID + "\").click(function () { if (($(\"#" + PostCode.ClientID + "\").val() == \"\" && $(\"#" + textDob.ClientID + "\").val() == \"\") || ($(\"#" + ClientId.ClientID + "\").val() == \"\" && $.browser.msie && parseInt($.browser.version, 10) < 10)) { $.jGrowl(\"<p style='padding: 3px; color: #fff;'>Please enter your Client ID and either a <em>Post code</em> or <em>Date of birth</em></p>\"); return false; }  });";
  Page.ClientScript.RegisterStartupScript(Page.GetType(), "ValidateLogin", script, true);
}