2011-03-20 5 views
1

おはよう、私は疑いがあります。 私は、ユーザの入力側をクリックして追加する機能を持っています機能が追加されます<SPAN>

プラスこれは誤りです。私は、たとえ人が何回かボタンをクリックしたとしても、ただ一回しか望みませんでした。他のものを追加しない場合は入力後にスキャンしますか

私のコード。

//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

あなたは$.findとの最初のspan.errorを検索し、いない場合にのみ、それを追加する必要があります

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 errorSpan = $(th)でしたか? find( "span.error)。length; var errorSpan = $(th)。prev(" span.error)。長さ; ここで "errorSpan"の値は0です – user628298

+0

@ user628298: "" span.error "ではなく、" span.error' - それはタイプミスですか? – Jon

+0

これは働いてくれてありがとう、私は両親を入れます $(th) .parents( "。diinput")。find( "span.erro")。 – user628298

0

jQuery One。エレメントのイベントにハンドラーをアタッチします。ハンドラは、要素ごとに最大で1回実行されます。

$('#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)

関連する問題