当id未知时,获取textarea的值

时间:2016-03-23 11:10:21

标签: javascript jquery textarea

我在获取textarea的值时遇到问题,其中id由数据库填充值。如何用jQuery获取它?

function updateTextarea(textarea, updateUrl) {
    var field = textarea.attr("data-field");
    var id = textarea.attr("data-id");
    var fieldValue = document.getElementById(id).value;
    textarea.val("Aktualisiere...");
    textarea.attr("readonly", "readonly");

    jQuery.post(updateUrl, jQuery.param({
        bid: id, 
        bfield: fieldValue
    }), function(data) {
        textarea.empty();
        textarea.val(data);
        textarea.removeAttr("readonly");
    });
}

我获得了textarea

$('.arrivalssuper_row').on('focus', 'textarea[data-field="SONSTVEREINBARUNGEN"]', function(e) {
    var textarea = $(e.target);
    updateTextarea(textarea, 'ajax/super_departures_sonstVereinbarungen.php');
});

到目前为止我已尝试过:

var fieldValue = textarea.val(); //didnt work
var fieldValue = textarea.value; //didnt work
var fieldValue = document.getElementById(id).value; //didnt work

我该怎么办?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试以下

var fieldValue = textarea.text();

textarea中没有值属性,它们的值在开始和结束标记之间。

答案 1 :(得分:1)

使用

var textarea = $(this);

console.log(textarea.text());

Val将无效,因为它返回"值"属性。

啊,我想我忽略了我们在这里谈论ajax。事情是textarea变量不存在于ajax回调函数的范围内。您应该考虑自动为textarea分配ID(或任何其他属性,但必须是唯一的),将该id与您的ajax请求一起传递,并将其返回给ajax回调。然后你可以通过它的id再次获得textarea。

这样的事情:

$.post(updateUrl, {bid: id, bfield: fieldValue}, function(data){
    $('textarea.'+data.id).text(data.value);
}, 'json');

在您的服务器中,您使用类似(PHP)

die(json_encode(array('id' => $_POST['bid'], 'value' => 'whatever')));