jquery ajax html响应...更改输入值不起作用

时间:2018-01-20 02:34:50

标签: javascript jquery html ajax

专家,

我很难获得jquery来修改一些通过ajax响应动态注入的HTML值。

https://jsfiddle.net/ksa0yg9y/

我在页面上有一些HTML:

<button id="test">test</button>
<div class="main"></div>

脚本(通过将html设置为静态值来模拟html响应):

$(document).on('click', '#test', function(){
    $.ajax({
  type: 'get',
  url: '/echo/html/',
  success:
  function(data) {
        $('.main').html('<input id="txt" type="text" name="title" value="">');
      }
  });
    $('#txt').val('test');
});

预计结果将是

但是从jsfiddle可以看出,输入值仍为空白。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

Ajax执行的调用是异步的。您需要“等待”直到数据实际存在。
尝试使用回调:

$(document).on('click', '#test', function(){
    $.ajax({
        type: 'get',
        url: '/echo/html/',
        success: function(data) {
            $('.main').html('<input id="txt" type="text" name="title" value="">');
            callback();
        }
    });
    function callback() {
        $('#txt').val('test');
        //...
    }
});

Live Demo

答案 1 :(得分:1)

这是你想要做的吗?

document.getElementById("test").addEventListener("click", function (e) {
    $.ajax({
        type: 'get',
        url: '/echo/html/',
        success: function(data) {
            $('.main').html('<input id="txt" type="text" name="title" value="">');
            $('#txt').val('test');
        }
    });
});