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);
现在,当我执行代码时...它工作得很好,并将输入文本框的值设置为所需的值。
我有一组通过 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);
现在,当我执行代码时...它工作得很好,并将输入文本框的值设置为所需的值。