0

我对这个 AJAX 响应有一些奇怪的行为。

在 PHP 页面上,我有:

echo $items = $_POST["items"];

还有我的ajax函数:

  $j('.share-pdf').on('click', function () {
    var $body = $('body');
    $body.addClass('loading');

    var pullsheetName = "pullsheet-backbone",
        pullsheet = localStorage.getItem(pullsheetName);

    $.ajax({
        cache: false,
        data: {
            items: pullsheet
        },
        url: '/create-pdf?store=true',
        type: 'POST',
        success: function (data) {
            alert(data);
            $body.removeClass('loading');
            $('#share-url input').val(data).select();
            $('#share-url').addClass('shared')
        }
    });
    return false;
});

alert(data)提醒已发布的数据时,输入中不会出现任何内容,这$('#share-url input').val(data).select();是应该做的。

我在这里做错了什么,为什么没有val()将数据正确写入指定的输入?

4

2 回答 2

1

尝试一个小冒号:

$('#share-url:input').val(data).select();

您的

$('#share-url input').val(data).select();

意思是:在 jQuery 中查找输入,例如:

 $('#share-url').find('input').val(data).select();

这是选择器的祖先/后代形式:$('div span')- 在 div 中查找跨度

于 2013-05-13T22:33:52.780 回答
0

我怀疑您需要改用以下内容:

$('#share-url input').val(function(){ 
    return data[$(this).attr('name')]; 
}).select();

这是假设这data是一个包含数据的 javascript 对象,而不仅仅是一个数据字符串。我的假设可能是错误的。但是,如果没有进一步的信息,很难找出问题出在哪里。

于 2013-05-13T20:09:46.847 回答