2012-05-31 18 views
1

我不能相信這之前沒有被覆蓋,但我一直有一個很難找到一個答案,這一個谷歌。使用JavaScript事件與ASP.net AJAX

我學習AJAX與ASP.NET,我有一個工作原型。我唯一的問題是,我想啓動我的AJAX驗證JavaScript事件(onKeyUp是確切的),但是,ASP.NET似乎只支持其AJAX版本的服務器端事件。如何從客戶端事件中調用我的AJAX?

感謝

UPDATE

只是想補充一點,我發現這招在那裏,但是這會導致網站做回發,這是沒有意義的我,如果你試圖做AJAX。

txtFirstName.Attributes.Add("onKeyUp","__doPostBack('ctl00_ContentPlaceHolder1_txtFirstName','')"); 
+0

你究竟在做什麼驗證?表單域或客戶端的其他東西?或者你是否驗證服務器端的AJAX代碼傳遞的數據? 也只是好奇;你正在研究一個MVC應用程序或Web窗體? –

+0

我想驗證在服務器端的文本框中輸入的內容。 – Limey

回答

1

這聽起來像你正在做的Web窗體的東西,並要驗證一些內容作爲其正在鍵入或至少在他們提交的數據。

你可能想看看ASP.NET AJAX工具包。您可以下載.dll文件並將其添加爲您項目的參考。

看看在ValidatorCallOut

+0

如果你不希望使用微軟的工具包的東西,你想要做更多的東西定製你可能要考慮的UpdatePanel和[部分回發(http://www.asp.net/web-forms/tutorials/aspnet -ajax/Understanding-partial-page-updates-with-asp-net-ajax) –

+0

爲了更直接地回答你的問題,你發現的「訣竅」在正確的道路上。您希望與部分回傳一起完成此類操作,而不是完整回發。 [見這裏](http://ybbest.wordpress.com/2009/11/06/trigger-partial-postback-from-javascript/) –

+0

我想我找到一個更好的方式來做到這一點。我沒有做任何形式的回發,而是將我的ajax的這部分內容全部忽略在一起。我只寫了一個javascript函數來調用服務器端頁面進行驗證,並將其添加到onkeyUp事件中。我會很快發佈一些代碼。 – Limey

0

好了,我「借」從w3Schools.com這個代碼,所以我想給他們貸

<script type="text/javascript"> 
    function val() { 
    var xmlhttp; 
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } 
    else {// code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById("spnFirstName").innerHTML = xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("POST", "server.aspx", true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.send(); 
    //xmlhttp.send("fname=Henry&lname=Ford"); //This is if you want to send values 
    } 
</script> 



First Name: <asp:TextBox ID="txtFirstName" runat="server" OnTextChanged="txtFirstName_TextChanged" AutoPostBack="True" onkeyup="Val()"></asp:TextBox> 
<span id="spnFirstName" runat="server" style="color:Red"> </span> 

Server.aspx是一個空頁只是在它裏面有「你好」這個詞。正如你所看到的,我將這個簡單的javascript函數綁定到了onKeyUp事件。這似乎也不妨礙ASP.NET AJAX驗證。

我喜歡做這個不是添加DLL好得多,因爲只要我堅持使用核心asp.net產品,我不必擔心有挖他們可能沒有圖書館其他開發商。