我有一组通过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中静态创建输入元素并尝试这些建议,它就完美了。但是如果输入字段是动态创建的,则没有骰子。
答案 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);
现在,当我执行代码时......它工作得很漂亮,并将输入文本框的值设置为所需的值。