我有一个动态内容的模态。 例如 我可以通过在文本框中键入someting并按Enter键来创建项目。 点击输入后,我想在文本框下面发出通知,该文本框本身是动态创建的。
通常我会把它放在我的.js.erb
中$("#idOfTextbox").append("some waring")
但正如我所提到的那样,带有id的文本框:idOfTextbox是动态创建的,因此这种方法不起作用。
我对此有很多了解,我认为我粗略地理解了这个问题,通常你会做这样的事情
$(document).on("click", "#idOfTextbox", function(){
$(this).append("some warning");
};
但我真的不想将它绑定到特定事件,我只想在控制器呈现.js.erb文件时附加消息
我认为类似.on(“加载”)可能有用,但到目前为止我没有成功。
我真的很感激任何帮助。
答案 0 :(得分:0)
试试这个:
$('body').append("<div id='idOfTextbox'></div>");
$(document).find('#idOfTextbox').append("some value");
答案 1 :(得分:0)
好的答案比预期的要容易。
我刚刚替换了ajax请求本身成功部分内的项目:
这会将#role_name textfeld的内容发送到控制器并呈现用#newrole id替换现有的div和我的文本
$(function(){
$("body").on("keyup", function(e){
if ( e.which == 13 ) {
role_name = $("#role_name").val();
$.ajax({
type: "POST",
dataType: "script",
url: '/roles',
data: {role: {name: role_name} },
success: function(){
$("#newrole").replaceWith("creation succesful bitches");
}
});
}
});
})
如果你想访问控制器的响应,只需调用这个函数
success: function(html){
和html变量内部应该是控制器响应的内容。
注意:我可以替换但不能追加,不知道为什么......