0
我有兩個問題在這裏也可以javascript驗證和ASP.NET驗證器同時工作
我同時使用JavaScript驗證和ASP.NET驗證器,但.NET驗證沒有完全工作,它顯示的驗證消息但是當我點擊提交表單獲取aspx文件在CS文件提交
另一個是,在JavaScript驗證電子郵件驗證不工作,我已經寫了電子郵件驗證功能和休息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文件中寫電子郵件驗證,所以它可以滿足如果條件提交點擊,謝謝