jquery为动态创建的输入文本字段添加值

时间:2015-07-20 04:17:43

标签: jquery input dynamically-generated

我有一组通过jQuery ajax创建的动态创建输入文本框,需要用值填充某些字段。我正在使用它;

$('#priority').attr('value', tplData);

但这似乎不起作用。

我尝试了.val(tplData),但无济于事。

是否有不同的方法来设置动态创建的字段值?

输入字段html如下;

<div class="field-container">
  <!-- This field is being dynamically created via an ajax call using jQuery -->
  <input type="text" name="priority" id="priority" class="input-group vert-spacer-bottom" placeholder="Priority">
</div>

非常感谢提前。

修改 它似乎肯定是动态创建元素的东西,因为如果我在HTML中静态创建输入元素并尝试这些建议,它就完美了。但是如果输入字段是动态创建的,则没有骰子。

4 个答案:

答案 0 :(得分:2)

尝试:

$('body').find('#priority').attr('value', tplData);

编辑:它应该可行,但您也可以这样做:

$('body').find('name=["priority"]').val(tplData);
$('body').find('#priority').val(tplData);

编辑:jsfiddle

上查看

答案 1 :(得分:0)

首先,是在为其分配值之前生成了文本框。您可以检查控制台选项卡中是否存在任何错误。有时如果在您的代码之前发生任何错误会发生什么,它将不会触发。所以右键单击页面 - &gt;检查元素 - >控制台。如果有任何错误,则解决它,重试。

你可以尝试像$(&#39;#priority&#39;)。val(tplData)

答案 2 :(得分:0)

如果你有多个控件,那么你必须使用类

$(".priority").prop("value",tplData);

检查控制台是否有任何错误。

答案 3 :(得分:0)

因此,在对着众所周知的代码墙进一步敲击之后,我能够设计出一种最终工作得很好的解决方案!

动态创建的文本框现在接受从我的jquery代码中为其赋值。神奇的是重新思考jquery在代码可见性方面必须如何看待元素。

首先要考虑的是容器DIV是静态的并且始终存在于文档中。这意味着在该DIV中创建的任何内容都将始终是客户端。锁定客户端的心态然后让我认为需要让jQuery知道新创建的元素。这是通过以下代码实现的;

var inputElm = '';
inputElm += '<input type="' + data.type + '" name="' + data.name + '" id="' + data.name + '" class="' + data.name + ' input-group vert-spacer-bottom" placeholder="' + data.placeholder + '" />';

$('.field-container').after().html(inputElm);

现在,当我执行代码时......它工作得很漂亮,并将输入文本框的值设置为所需的值。

相关问题