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

jquery add value to dynamically created input text field

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

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

但这似乎不起作用。

我尝试了 .val(tplData),但没有用。

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

输入字段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 中静态创建输入元素并尝试这些建议,它会完美无缺。但是,如果输入字段是动态创建的,则没有骰子。

尝试:

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

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

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

编辑:jsfiddle

上查看

首先,你的文本框是在你赋值之前生成的吗??您可以检查控制台中是否存在任何错误 tab.Sometimes 如果在您的代码之前发生任何错误会发生什么,它不会 fire.So 右键单击​​页面->检查元素->Console.If 任何错误然后解决它并重试。

你可以试试 $('#priority').val(tplData)

如果您有多个控件,那么您必须使用 class

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

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

所以,在我的脑袋进一步撞击众所周知的代码墙之后,我能够设计出一个最终运行良好的解决方案!

动态创建的文本框现在接受从我的 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);

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