所以我有一段时间没遇到这个问题了,经过大量的搜索后仍然没有找到解决方案。 出于某种原因,我无法获得$("#id")。load(function [...]);工作。
我有以下代码
<button id="b1">Asd</button>
<textarea id="b1_res" rows="10" cols="180"></textarea>
<script>
$("#b1_res").load(function(event) {
alert("Dang, I got called...");
$.ajax({
type : "GET",
url : "rest/noticias/todas",
success: function (data, textStatus, response) {
$("#b1_res").val(JSON.stringify(data))
},
error: function (response, textStatus, errorThrown) {
$("#b1_res").val("ERROR: " + response.responseText + " / " + errorThrown)
}
});
});
</script>
当我使用$(&#34;#b1&#34;)时,它有效。点击([...]);甚至来自外部JS脚本。 我搜索的所有地方似乎都没有这个问题。当有人问起这个问题时,他们只是语法错误或类似的东西,我认为这不是我的情况。 我显然犯了一些愚蠢的新手错误,但是我不能把手指放在它周围,所以任何帮助都会非常感激。
如果您需要更多信息,请告诉我,我会更新问题。
修改 我得到它与一种解决方法的工作。我就这样做了:
<script>
function populate() {
alert("Dang, I got called...");
$.ajax({
type : "GET",
url : "rest/noticias/todas",
success: function (data, textStatus, response) {
$("#b2_res").val(JSON.stringify(data))
},
error: function (response, textStatus, errorThrown) {
$("#b2_res").val("ERROR: " + response.responseText + " / " + errorThrown)
}
});
}
</script>
<textarea id="b2_res" rows="10" cols="180"></textarea>
<script>populate();</script>
不完全是我想要的,所以如果有人有任何更多的输入,它仍然会受到赞赏。
答案 0 :(得分:0)
我认为你不得不在textarea字段中使用load方法来加载来自ajax的内容。
是的,如果你的文档中有多个textarea字段并动态加载这个文本区域,那么只需要使用load()方法。
如果是动态生成的texarea字段,则不能在id属性中使用相同的值。其他明智的jQuery只从文档中找到第一个texterea元素。
如果你的ajax内容是基于id加载的,那么你必须动态设置一些属性并在ajax请求中传递它。
你的代码应该是这样的动态textarea
$(document).ready(function(){
$(".ajax-content").each(function(){
$this=$(this); // jquery dom object pointer
$this.load(function(){
loadTextFromAjax($this);
})
})
});
function loadTextFromAjax(textObj){
var data_id= textObj.attr('data-id');
$.ajax({
type : "GET",
url : "rest/noticias/todas",
data: {id: data_id},
success: function (data, textStatus, response) {
textObj.val(JSON.stringify(data))
},
error: function (response, textStatus, errorThrown) {
textObj.val("ERROR: " + response.responseText + " / " + errorThrown)
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="b1">Asd</button>
<textarea data-id="b1" class="ajax-content" rows="10" cols="180"></textarea>