2012-01-11 74 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