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