2015-05-31 35 views
0

當有人填寫我的註冊表單並輸入用戶名時,它會刷新頁面並顯示「用戶名已被佔用,選擇另一個」。如何在使用用戶名時取消發送數據

但該人填寫的所有數據都已刪除。

如何取消用戶名,讓用戶可以更改它?

protected string msg = ""; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (this.IsPostBack) 
    { 
     string FirstName = Request.Form["FirstName"]; 
     string LastName = Request.Form["LastName"]; 
     string PhoneNumber = Request.Form["PhoneNumber"]; 
     string Prefix = Request.Form["Prefix"]; 
     PhoneNumber = Prefix + PhoneNumber; 
     int BirthYear = int.Parse(Request.Form["BirthYear"]); 
     string Email = Request.Form["Email"]; 
     string UserName = Request.Form["UserName"]; 
     string Password = Request.Form["Password"]; 
     string gender = Request.Form["gender"]; 
     string dbPath = this.MapPath("App_Data/Database.mdf"); 
     DAL dal = new DAL(dbPath); 
     UtilityUser uu = new UtilityUser(dal); 
     if (uu.Exist(UserName)) 
     { 
      msg = "שם המשתמש שבחרת תפוס"; **//username is taken** 
     } 
     else 
     { 
      uu.Register(FirstName, LastName, PhoneNumber, BirthYear, Email, UserName, Password, gender); 
      msg = "נרשמת בהצלחה!"; **// Register succeed** 
     } 
    } 
} 

這是檢查用戶名的形式:您需要使用Ajax這個功能

var UserName = aspnetForm.UserName.value; 
    if (UserName.length < 6) { 
     document.getElementById("labelUserName").innerHTML = '<img src=\'images/X.png\'>'; //**X icon** 
     Fields += "שם משתמש - שדה זה חייב להכיל בין 6 ל־12 תווים\n"; 
     correct = false; 
    } 
    else { 
     document.getElementById("labelUserName").innerHTML = '<img src=\'images/V.png\'>'; //**V icon** 
    } 
+1

使用ajax檢查用戶名 –

+0

你能幫我嗎?如何使用Ajax或什麼? – Ran

+0

@Ran檢查我的答案,讓我知道你在用什麼服務器端技術,所以我可以幫助 – Alex

回答

0

。檢查用戶名可用性始終是ajax調用。您不需要將所有數據發送到服務器。這似乎並不正確

如果您使用的是asp.net webforms,那麼只需使用頁面方法。以下是代碼

你的Web方法

using System.Web.Services; 

namespance namespacename{ 
class your classname 
{ 

[WebMethod] 
public static string checkAV(string uname) 
    { 
    //Your sql plus other logic 

    if(userAVailable){return "true";} 
    else{return "false";} 

    } 

您HTML

<input type="text" id="txtUN" placeholder="username" onchange="return check();"/> 

你的JavaScript

function check() 
{ 
    PageMethods.checkAV($(#txtUN"").val(),success,fail); 
} 

function success(response) 
{ 
    if(response=="false") 
    { 
    $("#r").html("user available"); 
    } 
    else 
    {$("#r").html("user not available");} 
} 

function fail(error){alert("error occured");} 

而且你需要在你的腳本管理器中使用此

<asp:ScriptManager ID="sm" runat="server" EnablePageMethods="true"></asp:ScriptManager> 
+0

我使用的是JavaScript和c#,但是我可以學習ajax,如果你說它不那麼難? – Ran

+0

是你使用asp.net MVC還是Webforms? – Alex

+0

我正在使用aspnet。 – Ran

0

你可以做s.t這樣的:

$("#formId").on("submit", function(e){ 
    e.preventDefault(); 

    $.ajax({ 
    method: "POST", 
    url: "some.aspx", 
    data: { name: "John", location: "Boston" } 
    }).done(function(data) { 
    if(data check) 
     $("#formId").submit(); 
    }); 
}); 

您應該創建一個方法(網絡服務),以檢查用戶名該ID您的網址上方。然後,如果返回的數據是有效的,提交您的表單,或者你可以創建另一個Web服務,並提交它

+0

是ajax還是javascript? – Ran

+0

通過jquery的Ajax。閱讀此:[JQuery的Ajax](http://api.jquery.com/jquery.ajax/) –

+0

你認爲Ajax是不是很難?我可以在幾天內學會它? – Ran

相關問題