2011-09-16 112 views
1

我几乎是jquery的新手。我一直在尝试做验证,其中i检查一个文本框长度大于4使用jquery进行验证

所以,这就是我所做的:

$(document).ready(function() { 

    $('#tbstreet1').blur(isValid); 
         }); 
    function isValid() 
{ 
    Boolean isvalid; 
    var street1Length = $("#tbstreet1").val().length; 

    alert(street1Length); 
    if(myLength >4) 
    { 
     isvalid= true; 
     ActivateSave() 
    } 


} 
function ActivateSave() 
    { 

    $("#btn_save").attr("Enabled",true); 
    } 

这是我的aspx页面:

<asp:Label runat="server" ID="street1" Text="Street1" O></asp:Label> 
    <asp:TextBox ID="tbstreet1" runat="server" CausesValidation="true" ></asp:TextBox> 

<asp:Button ID="btn_save" runat="server" Text="Save" Enabled="false" /> 

我连脚本源在我的.NET页面

<script src="http://code.jquery.com/jquery-1.6.4.js" type="text/javascript" > 
</script> 

但事情一直是我如何调用JavaScript FUNC从这里重刑?因为我很确定我的JavaScript没有被调用。你能帮我吗?

回答

3

你需要“连接”你的jQuery的功能,您的文本框:

$('#tbstreet1').blur(isValid); 

这将运行isValid功能当文本字段模糊。另外,您也可以提供一个匿名函数:

$('#tbstreet1').blur(function() { 
    // do something, maybe even 'isValid();' 
}); 

这是很好的,如果你需要运行的代码是一次性的,但如果你需要的功能在多个地方被执行多次,这是更好地创建一个'命名'功能,就像第一个例子。

请记住,您需要将所有代码放入onReady函数中,该函数仅在页面完成加载(并且DOM已准备好导航)之后才会执行。你可以通过简单地使用做到这一点:

<script type="text/javascript"> 
    // this is a shortcut for $(document).ready() 
    $(function() { 
     // your code 
    }); 
</script> 
+1

不要忘记,需要在一个'.load()'或'。就绪()'处理程序。或者至少在页面加载之后调用该元素。 –

+0

Heh Jared,当您发布该评论时,我正在编辑我的答案:)。 –

+0

嘿我做到了这一点..我只是在一秒钟内更新我的代码,但它仍然不适用于我..我可以请你帮我 – user838359

0

只是添加到@Daniel T.的回答是:

模糊事件被发送到时失去焦点的元素,有一个更准确的文本改变事件时,可以使用this插件

我建议你使用firebug使JS调试,这让事情变得更加简单

0

此外,如果您还没有作出改变,如果你是在服务器上运行您的文本框,你做需要

$('#<%= tbstreet1.ClientID %>').blur(function(){}); 

代替

$('#tbstreet1').blur(function(){});