Javascript验证和ASP.NET验证器可以同时工作吗?

时间:2014-01-25 09:15:40

标签: javascript asp.net validation c#-4.0

我在这里有两个问题

  • 我同时使用了javascript验证和ASP.NET验证器,但是.net验证器没有完全正常工作,它显示验证消息但是当我点击提交表单时会提交

  • 另一个是,在javascript验证中,电子邮件验证无效,我在aspx文件中编写了电子邮件验证功能,并在cs文件中进行了javascript验证

在电子邮件验证中,当我使用getElementById时它什么也没显示,但是当我使用getElementByName时它显示验证消息,即使电子邮件是正确的,它也会显示验证消息,表单也会提交

aspx文件中的电子邮件验证功能 -

<script type="text/javascript">
function checkEmail() {
    var email = document.getElementsByName('txtremail');
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email.value)) 
    {
        alert('Please provide a valid email address');
        email.focus;
        return false;
    }
    else {
        return true;
    }
}

提交按钮 -

<asp:ImageButton ID="submitbtn" runat="server"
        ImageUrl="~/images/joinnow.jpg" CssClass="joinbtn" 
    ValidationGroup="join" onclick="submitbtn_Click" OnClientClick="return checkEmail()"/>

并且在cs文件中我使用了if条件,因为即使电子邮件无效,我认为表单也会提交

cs文件代码是 -

 public bool chkpass(string pass, string conpass)
{
    if (pass.Equals(conpass))
    {
        return true;
    }
    return false;
}
protected void submitbtn_Click(object sender, ImageClickEventArgs e)
{
    if (txtruname.Text != "" && txtrfname.Text != "" && txtrpass.Text != "" && txtremail.Text != "" && txtrdesc.Text != "")
    {
        if (!chkpass(txtrpass.Text, txtrcnpass.Text))
        {
            Page.ClientScript.RegisterStartupScript(GetType(), "", "alert('password does not match');", true);
        }
        else
        {
            dl.req_username = txtruname.Text;
            DataTable dt = new DataTable();
            dt = bl.reqruiter_uname(dl);
            if (dt.Rows.Count > 0)
            {
               lblwarning.Text = "username exists";
            }
            else
            {
                dl.req_fullname = txtrfname.Text;
                dl.req_username = txtruname.Text;
                dl.req_password = txtrpass.Text;
                dl.req_email = txtremail.Text;
                dl.req_description = txtrdesc.Text;
                bl.reqruiter_registration(dl);
            }
        }
    }
    else
    {
        Page.ClientScript.RegisterStartupScript(GetType(), "", "alert('please fill all info');", true);
    }

那么,如果电子邮件出错,我应该怎样做才能使表单无法提交? 如果可能的话,我怎样才能在cs文件中编写电子邮件验证,因此它可以满足提交点击的条件,谢谢

1 个答案:

答案 0 :(得分:0)