2013-03-22 26 views
1

我正在嘗試檢查文本文本更改事件的電子郵件可用性。下面是代碼(我從網上拾起):jquery檢查電子郵件可用性/數據庫中的重複

HTML(JavaScript的):

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 

<script type="text/javascript"> 

    $(document).ready(function() { 

     $("#<%=txtEmailAddress.UniqueID%>").change(function() { 

      var uname = $("#<%=txtEmailAddress.UniqueID%>"); 

      var msgbox = $("#status"); 

      if (Email.val().length > 0) { 

       $.ajax({ 

        type: "POST", 

        url: "SignUp.aspx/usp_CheckEmail", 

        data: "{'args': '" + Email.val() + "'}", 

        contentType: "application/json; charset=utf-8", 

        dataType: "json", 

        success: function (msg) { 

         if (msg.d == 'Available') { 

          Email.removeClass("notavailablecss"); 

          Email.addClass("availablecss"); 

          msgbox.html('<img src="Images/a.png"> <font color="Green"> Available </font>'); 

         } 
         else { 
          Email.removeClass("availablecss"); 

          Email.addClass("notavailablecss"); 

          msgbox.html(msg.d); 

         } 
        } 
       }); 
      } 
      else { 

       Email.addClass("notavailablecss"); 

       msgbox.html('<font color="#cc0000">Email must be unique</font>'); 

      } 

     }); 

    }); 

CS:

[System.Web.Services.WebMethod] 

protected void txtPassword_TextChanged(object sender, EventArgs e, string args) 
    { 
string returnValue = string.Empty; 

SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]); 


try 
{ 

SqlCommand sqlCmd = new SqlCommand("usp_CheckEmail", con); 

sqlCmd.CommandType = CommandType.StoredProcedure; 

sqlCmd.Parameters.AddWithValue("@Email", args.Trim()); 

con.Open(); 

int success = int.Parse((sqlCmd.ExecuteScalar().ToString())); 

if(success == 1) // Email Not Available 
{ 
returnValue = "<img src="Images1/n.png"><font color="#cc0000"><b>'" + args + "'</b> is already in use.</font>"; **//getting syntax error here** 

    } 
    else if(success == 0)//Email is available 
{ 
returnValue = "Available"; 
} 

} 
catch 
{ 
//Handle Error 
} 
finally 
{ 
con.Close(); 
} 

return returnValue; 
} 

    } 
} 

獲得的返回值線的錯誤。什麼是正確的語法?此外,它應該顯示這樣的圖像:na

所以,我需要在我的.aspx頁面上有圖像控件?因爲我從這個代碼中獲得的文章沒有提到要有圖像控件。如果是的話,我如何將它們與代碼綁定呢?

UPDATE:繼承人的鏈接,在那裏我得到了 http://www.dotnetspark.com/kb/Content.aspx?id=1278

什麼所有的東西都從文章缺少的代碼?還有什麼需要做的?任何人都請..我需要這個...

+0

錯誤是什麼意思?嘗試理解你在拼湊的代碼通常在創建一個好的解決方案方面有很長的路要走。 – nunespascal 2013-03-22 07:18:52

+0

;預計 - 大聲笑 – adityawho 2013-03-22 07:19:40

+0

並不代表你的語法是錯誤的?看看你的報價。您需要在字符串中轉義引號。 – nunespascal 2013-03-22 07:23:51

回答

0

你正在使用雙引號不正確。

returnValue = "<img src=\"Images1/n.png\"><font color=\"#cc0000\"><b>'" + args + "'</b> is already in use.</font>"; 

生成HTML或這樣的標記是非常不好的習慣。考慮將其更改爲客戶端的模板系統或在後端找到更優雅的解決方案。

+0

好吧,錯誤消失了,但現在更大的問題是:爲什麼不執行?我絕對沒有發生在這裏!它甚至沒有進入方法!...? – adityawho 2013-03-22 07:52:56

0

您似乎試圖調用C#代碼用來檢查電子郵件是否可用於客戶端Ajax調用的存儲過程。您應該調用您已定義的方法。

相關問題