在html呈现后jQuery输入值不会立即改变

在html呈现后jQuery输入值不会立即改变

问题描述:

正如您在此处看到的,此函数将html加载到我的文件中的表单类上。 (quest [q]找到正确的html模板以从未显示的模板数组加载。在html呈现后jQuery输入值不会立即改变

正在加载的html有一个id为p的输入。正如你所看到的,我正在试图在加载之后设置输入的值。

但是我不能得到这个工作。

正确的html被加载,但该值不会被加载。我将不得不调用该函数两次(双击)来获取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

在.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); 
    }) 


} 

}