2017-05-10 9 views
0

テキストフィールドのHTMLコード文字列を生成しようとしています。問題は、生成されたHTMLテキストフィールドでonchangeイベントが機能しないことです。次のように私のHTMLページ内生成されたHTMLテキストフィールドのonClickイベントの設定

スクリプトは次のとおりです。

function validateSC1(){ 
    //check something 
} 

var myStepContent = new StepContent("sc1", "First Name", inputType.Text, true, validateSC1); 
document.getElementById("loc").innerHTML = myStepContent.generateCode().getCode(); 

validateSC1関数が生成されるテキスト・フィールドののonchangeイベントであると考えられます。次のように

今StepContent機能は次のとおりです。

function StepContent(id, label, type, mandatory, validation){ 
    this.init = function(){ 
     this.id = id; 
     this.label = label; 
     this.type = type; 
     this.mandatory = mandatory; 
     this.validation = validation; 
     this.output = ""; 
    } 

    this.generateCode = function(){ 
     if(this.type == inputType.Text){ 
      this.output += this.label + ": <br><input id='" + this.id + "' type='text' onclick='" + this.validation + "'><br>"; 
     } 
     return this; 
    } 

    this.getCode = function(){ 
     return this.output; 
    } 

    this.init(); 
} 

私も仕事にのonchangeを取得することができないのです。私はそれが動作するかどうかを見るためにonclickイベントに変更しました。誰でもアドバイスをしたり、私が間違っていることを教えてもらえますか?

注:生成されたHTMLコードがページにレンダリングされる前にonchangeイベントを割り当てて、生成されたテキストフィールドにaddEventListenerを使用することはできません。 jQueryを使って

+0

'onclick = '" + this.validation + "'' これを実行しているときは、メソッドを取得して文字列に変換しています。渡されたメソッド参照を参照することはありません。さらに、HTMLをどのようにレンダリングしているのかわからないinnerTextを設定しています。 – epascarello

+0

ああ、私が試した試行文だったので、そのコード行を削除しました。それをそこに置くつもりはありませんでした。私の悪い! – Chums

答えて

0

は、同じイベントのいずれかのタイプで動作しますし、それがチェックされますので、内容にも存在する前に割り当てることができ

$(document).on('change', '#element_id', function() { 
    //your code 
}); 

変更で使用するために動的にロードされたHTML

$(document).on構文を使用します。イベントがトリガーされるたびに要素を照合するためのDOM。

0

あなたのonclickイベントに括弧はありません。 また、私は慣習であると思うものから、一重引用符と二重引用符を逆に使用します。 私はあなたのオブジェクトをFirebugでチェックします。

関連する問題