2011-03-20 55 views
1

早上好,我有疑问。 我有一个功能,添加一个点击用户,我的输入端功能增加<SPAN>

此外,这给了一个错误。即使adicionace一个人点击了按钮几次,我也只想要一次。你有没有输入后扫描,如果不添加另一个

我的代码。

//th = Name of the input that will add, at the low <SPAN> 

     if(d.length == 0){ 
      $(th).after('<SPAN class="erro">'+txt+'</SPAN>'); 
      this.focus(); 
      return false; 
     } 

我将非常感谢您的帮助。 :)

回答

0

你应该寻找span.error先用$.find,并添加它,只有当它不存在的话:

if(d.length == 0){ 
     var errorSpan = $(th).find("span.error").length; 
     if(!errorSpan) { 
      $(th).after('<SPAN class="erro">'+txt+'</SPAN>'); 
      this.focus(); 
     } 
     return false; 
    } 
+0

感谢,所以我想,更多的尝试并没有在这里工作。 var varSpan = $(th)。 find(“span.error).length;和 var errorSpan = $(th).prev(”span.error)。长度; 其中“errorSpan”值= 0 – user628298 2011-03-20 10:58:31

+0

@ user628298:'“span.error”',而不是'“span.error' - 是一个错字? – Jon 2011-03-20 11:03:02

+0

现在感谢它的工作,我把父母 $(th) 。家长( “diinput ”)找到(“ span.erro”)长度。; – user628298 2011-03-20 11:10:38

0

使用jQuery One。将处理程序附加到元素的事件。处理程序每​​个元素最多执行一次。

$('#yourbuttonid').one('click', function() { 
    if(d.length == 0){ 
     $(th).after('<SPAN class="erro">'+txt+'</SPAN>'); 
     this.focus(); 
     return false; 
    } 
}); 
0

注册使用$('selector').one('click', function(e) { /* your code */ });,使之火一次事件。

如果th是输入名称(字符串),你的选择应该像$('input[name='+th+']'),而不是$(th)