2017-08-24 8 views
1

ここからわかるように、この関数は、ファイル内のフォームクラスにhtmlをロードしています。 (quest [q]は、表示されていないテンプレートの配列からロードする適切なhtmlテンプレートを探します。htmlレンダリングの直後にjQuery入力値が変更されない

ロードされているhtmlには、idがpの入力があります。あなたが見ることができるように、私はロード後に入力の値を設定しようとしています。

しかし、これを動作させることはできません。

適切なhtmlがロードされますが、値がロードされません。私は2回(ダブルクリック)jqueryを取得して値を変更する関数を呼び出す必要があります。

これをうまく動作させるには、どのようにアドバイスを受けるのがよいでしょうか。私は動的に再ロードしたいユニークな値を持つ複数のテンプレートを持っています。将来、関数内にidが渡され、ロードされているテンプレートに関連付けられる適切な番号が取得されます。今のところ私はちょうどテストしている。

ありがとう

これは.formに読み込まれるhtmlです。 ID #pを参照してください。

<div class="question animated slideInUp"> 
    <h2>Enter Your Estimated Yearly Income</h2> 
    <form onsubmit="Obj(this.income.name,this.income.value)"> 
     <input min=1 type="number" id="p" name="income" value="" required> 
     <input type="submit" value="Submit"> </form> 
</div> 


function redo(q) { 

    q = Number(q); 

    if (q + 1 != iterator) { 
     iterator++; 
     $('.form').load(quest[q]) 
     $('#p').val(data.income); 

    } 
} 
+0

ちょうどノート:それはインデントが固定された場合は、これを読むために非常に簡単になります。 –

+0

私は実際に何をしようとしているのか分からず、コードに関連する情報がたくさん含まれていないようです。 – quirimmo

+0

投稿されたコードには約束はありませんが、 'load'は非同期です。あなたは本当にここに問題が何であるかを私たちに伝えていませんか? – adeneo

答えて

0

.loadでは、htmlがレンダリングされた後に呼び出されるコールバック関数を使用できます。これは、入力に適切な値をレンダリングするために機能します。

残念ながら私は脳のおならを持っていましたが、今はうまくいきます!

function redo(q) { 
console.log(data); 
q = Number(q); 
console.log(q); 
if (q + 1 != iterator) { 
    iterator++; 
    return $('.form').load(quest[q],function(){ 
     $('#p').val(data.income); 
    }) 


} 

}

関連する問題