2016-10-14 8 views
0

ダイナミックに追加されたhtmlボタンであるJqueryを使用して、無効にしたり解除したりする方法を知りたいと思います。動的に追加されたjquery(イベントなし)のボタン

私は、.on()関数を認識していますが、動作させるには、この関数のneedとeventを(クリックなどのように)聴くために、それを関数から呼び出す。

var validateForm = function(){ 
    if(exp_valid && cc_valid && ch_valid && cvn_valid){ 
     $('#myID').prop('disabled', false); 
    } 
} 

は、私は適切な方法をしたいと思います:

これが実際のコードで、それは「#myID」とボタン原因働いていないWICHは準備ができて、ドキュメント()の後に動的に注入された部分であります私の動的に追加されたボタンをイベントなしで選択します。

ありがとうございます。ボタンは最初

if ($(#myID).length) { 
    $('#myID').prop('disabled', false); 
} 
+1

これは簡単です、あなたはちょうどあなたが存在しない何かを変更することはできません、そこにボタンのを待つ必要があります。 – adeneo

+0

動的に追加された要素を選択することは、他の要素を選択することと変わりありません。ドキュメント内に存在する場合は、そのドキュメントを選択できます。問題がある場合は、その問題の実際の複製を提供してください。 –

+0

ボタンをターゲットにすることができ、これは$( '#myID')で動作します。 私のボタンを有効または無効にすることができないので、小道具( 'disabled'、true)は機能するはずです... – Simonux

答えて

0

を存在するかどうかをチェックすることができます

1

は、私が使用してそれを行うために管理:

$('#myID').attr("disabled", true); 

あなたの時間のために皆に感謝します。

+0

$( '#myID).lengthは1を返していますが、 。 – Simonux

1

DOMエレメントの変更を監視するようにMutationObserverを設定すると、ノードツリーに何かが追加された場合に新しいチェックをトリガーできます。

簡体JSは:

var observer = new MutationObserver(function() { 
    // This is where you run your function 
    $('#myID').attr("disabled", true); 
    console.log($('#myID')); 
}); 

observer.observe(document.documentElement, { 
    childList: true, 
    subtree: true    
}); 

私は一緒にボタンを動的に追加されthis demoを入れていると、あなたはそれを無効にするかどうかを確認するためにもう一度あなたの関数を実行することができます。

完全な実装は本当によくこの資料に記載されている:http://ryanmorr.com/using-mutation-observers-to-watch-for-element-availability/

+0

このアプローチとリソースを共有していただき、ありがとうございます。これは素晴らしい ! – Simonux

関連する問題