使用jQuery和AJAX对对象加载发出请求

问题描述 投票:1回答:1

所以我有一段时间没有这个问题,经过大量搜索后仍然没有找到解决方案。出于某种原因,我无法得到$(“#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>

它在我使用$(“#b1”)时有效。点击([...]);甚至来自外部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>

不完全是我想要的,所以如果有人有任何更多的输入,它仍然会受到赞赏。

jquery ajax html5 rest
1个回答
0
投票

我不认为你必须在textarea字段中使用load方法来加载来自ajax的内容。

是的,如果在您的文档中有多个textarea字段并动态加载此文本区域,则只需要使用load()方法。

如果是动态生成的textarea字段,则不能在id属性中使用相同的值。其他明智的jQuery只从文档中找到第一个textarea元素。

如果你的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>
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.