2012-01-11 110 views
1

我對jQuery仍然很陌生!在我的舊網站上測試它來測試它的功能。我甚至無法得到一個簡單的jQuery腳本來運行,這非常令人尷尬。請幫助傢伙!jQuery選擇器無法通過ID找到我的元素

出於某種原因,我不能讓jQuery選擇通過ID查找元素。這裏的代碼

$(document).ready(function() { 
     if (jQuery) { 
      alert("jQuery working"); 
     } else { 
      alert("jQuery not working"); 
     } 

     $('#TextBox4').keyup(function() { 
      alert("KEYUP FUNCTION WORKENGGG"); 
      var password = jQuery('#TextBox3').val(); 
      var cfmPassword = jQuery('#TextBox4').val(); 
      check_password_match(password, cfmPassword); 
     }); 
    }); 

這是我的ASP的html代碼。

<asp:TextBox ID="TextBox4" runat="server" BackColor="#181818" ForeColor="White" 
         TextMode="Password" ToolTip="Password">Password</asp:TextBox>` 

<asp:TextBox ID="TextBox3" runat="server" BackColor="#181818" ForeColor="White" 
         TextMode="Password" ToolTip="Password" Height="22px">Password</asp:TextBox>` 
+1

我認爲問題是,「TextBox4」將不被使用的實際值時,ASP生成HTML。你必須要求「客戶端ID」,但我不是ASP程序員,所以我不知道該怎麼做。 – Pointy 2012-01-11 18:06:24

+0

您的代碼probly不會到達如果(jQuery的){條件,如果jQuery是不是整個事情的工作是一個domready中事件中通過jQuery觸發($) – techfoobar 2012-01-11 18:06:57

+0

你檢查源,看看是否有一個名爲TextBox4一個元素?先嚐試製作一個帶有基本HTML的盒子。 – tehdoommarine 2012-01-11 18:09:26

回答

3

試試這個: $('#<%=TextBox4.ClientID %>')

在客戶端asp.net控件有ID比你給它在aspx頁面的不同。

+0

感謝您的迅速回復!有用! – user1143801 2012-01-11 18:42:40

1

HTML元素的ID將不匹配ASP控制的ID。其原因是ASP.NET控件可以是命名控件,它充當ID命名空間,允許多個控件具有相同的ID但具有不同的ClientID。最終結果是ClientID是您應該在JQuery中搜索的內容。即$('#<%# TextBox4.ClientID %>')將返回您嘗試檢索的JQuery元素。

+0

謝謝!它爲我工作!非常感激! – user1143801 2012-01-11 18:43:48

0

我覺得如果jQuery是找到你的元素是使用類似快速檢查最簡單的方法:當你的頁面加載您給定的元素應該以紅色突出顯示

$("#TextBox4").css("border","solid 1px red"); 

這樣。然後,您可以知道選擇器正在工作,繼續執行您的真實代碼。

假設你的提醒上面還冒出了和你有正確安裝jQuery的,我建議你檢查你的實際來源。也就是說,瀏覽到有問題的頁面,看看實際的html被渲染爲什麼。

因爲你似乎在使用asp標籤(我假設有一些微軟.NET的味道?),要意識到在頁面呈現的時候,輸出中實際的html標籤與你所在的行看起來很不一樣編碼。查看視圖源並檢查文本框實際呈現的內容。您可能會發現它是<textarea><input>標記。看看id是否已經改變。我相信微軟有一種方法可以將ID或其他變量附加到您提供的ID上。你可能會發現真正的代碼jQuery使用你的選擇器反對如下:

<input type="text" id="TextBox4_123124" .... 

或類似的東西。在這種情況下,您必須查看id是否始終以相同的方式更改,否則,您可能不得不使用Microsoft的jQuery實現 - 如果有的話。

要真正嘗試你的jQuery選擇,嘗試純HTML從頭開始編寫一個HTML文本元素,看看是否適合你,然後移動到解密微軟的自動生成的HTML。

+0

感謝您在頁面加載後查看ID的提示,真正有幫助! :> – user1143801 2012-01-11 18:43:29