我正在尝试更新输入字段的值,该输入字段是动态创建的DOM的一部分而没有成功。 有人可以告诉我我做错了什么。感谢。
HTML
<div class="hidden-institution-form hide">
<form class="form-horizontal forms" role="form">
<input type="text" id="code">
</form>
</div>
JQUERY
//Create an empty Div and clone the content of .hidden-institution-form in it
var frm = $('<div class="institution-form" id="institution-form"/>').append($(".hidden-institution-form").clone());
//Remove the hide class
$(frm).find(".hidden-institution-form").removeClass("hide");
//Replace .hidden-institution-form with .instutition
$(frm).find(".hidden-institution-form").removeClass("hidden-institution-form").addClass("instutition");
//Locate the input field #code and change it value
$("#institution-form").find("#code").val('some value'); //This does not work
答案 0 :(得分:4)
有人可以告诉我我做错了吗
您没有将创建的元素添加到DOM。
frm
元素仅在本地范围内创建,而$("#institution-form")
搜索DOM中的元素
答案 1 :(得分:0)
删除隐藏机构类后,您只需添加类&#34;机构&#34;所以下面的代码应该可以工作:
更新:在某些拼写错误中,您使用的方法已关闭。试试这个:
//Create an empty Div and clone the content of .hidden-institution-form in it
var frm = $('<div class="institution-form" id="institution-form"/>').append($(".hidden-institution-form").clone());
//Remove the hide class
$(".hidden-institution-form").removeClass("hide");
//Replace .hidden-institution-form with .instutition
$(".hidden-institution-form").removeClass("hidden-institution-form").addClass("institution");
//Locate the input field #code and change it value
$(".institution").find("#code").val('some value'); //This does not work
JSFIDDLE:http://jsfiddle.net/de7Hv/
答案 2 :(得分:0)
主要问题是您没有将新创建的元素添加到dom中。因此,当您执行id选择器#institution-form
时,它将无法找到新元素。
我看到的另一个问题是,如果你创建了这个块的多个实例,那么将会有多个id为institution-form
的元素,这将导致在找到正确的元素来设置值时出现问题。
因此,在您克隆或创建元素的多个insteances的地方,使用calsses insted so
<div class="hidden-institution-form hide">
<form class="form-horizontal forms" role="form">
<input type="text" class="code"/>
</form>
</div>
然后
//Create an empty Div and clone the content of .hidden-institution-form in it
var frm = $('<div class="institution-form" />').append($(".hidden-institution-form").clone());
//Remove the hide class
$frm.find(".hidden-institution-form").removeClass("hide");
//Replace .hidden-institution-form with .instutition
$frm.find(".hidden-institution-form").removeClass("hidden-institution-form").addClass("instutition");
//Locate the input field #code and change it value
frm.find(".code").val('some value'); //This does not work