2017-03-17 6 views
2
$(document).on('click', '.add-button-prototype', function(){ 
      if ($(this).closest('.collectionContainer').find('input[type="text"]').val() == '') { 
       return false; 
      } 
     }); 

例1指定されたクラスを持つすべての新規追加要素のcatchイベントをキャッチしますが、コードの実行を妨げません。クリックして他の関数からjsコードを実行しないようにする

$('.add-button-prototype').click(function(e){ 
     if ($(this).closest('.collectionContainer').find('input[type="text"]').val() == '') { 
      return false; 
     } 
    }); 

第2の例は、指定されたクラスのロードされた要素に対してのみ機能し、ページの初期化後に新規追加されたものでは機能しません。しかし、それはコードの実行を防ぎます。

古いクラスと新しく追加された同じクラスのすべての要素をキャッチし、条件が真である場合にコードの実行を防止する方法。 return falseほかに

+0

は、HTMLとコードを表示することができますボタンを追加するとき –

答えて

1

は、だからあなたのコードは次のようになりますe.preventDefault();

を追加します(「追加ボタン-プロトタイプ」)を使用すると、ボタンの$を追加する方法

$(document).on('click', '.add-button-prototype', function(e){ 
     if ($(this).closest('.collectionContainer').find('input[type="text"]').val() == '') { 
      e.preventDefault(); 
      return false; 
     } 
    }); 
+0

これは良い解決策のように見えますが、まだ動作していません。 :/ –

+1

おそらくこれはもう問題ではなく、それは他のものと関連しています。あなたはjsfiddleスニペットでバグを再現できますか? – Ibrahim

関連する問題