Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript id未知时获取textarea的值_Javascript_Jquery_Textarea - Fatal编程技术网

Javascript id未知时获取textarea的值

Javascript id未知时获取textarea的值,javascript,jquery,textarea,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

我在获取
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");
    });
}
在那里我可以看到
文本区域

$('.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
我能做什么?有什么想法吗?

试试下面的方法

var fieldValue = textarea.text();
textarea
中没有value属性,它们的值位于开始标记和结束标记之间。

使用

var textarea = $(this);

console.log(textarea.text());
Val将不工作,因为它返回“value”属性

啊,我想我忽略了我们在谈论ajax。问题是textarea变量不存在于ajax回调函数的作用域中。您应该考虑将ID自动分配给TexTaReA(或者任何其他属性,但必须是唯一的),将AID请求传递给Ajax请求,并将其返回到Ajax回调。然后您可以通过它的id再次获取textarea

大概是这样的:

$.post(updateUrl, {bid: id, bfield: fieldValue}, function(data){
    $('textarea.'+data.id).text(data.value);
}, 'json');
在您的服务器中,您可以使用类似(PHP)的东西


事实上有很多想法,但你需要显示一些标记,你可以通过父级、同级等访问它。它仍然会给我空文本编辑,在你的on('focus'…function(){…})中尝试此操作仍然会给我空值。这怎么可能?如果
val()
不工作
text()
将不起作用,问题出在其他地方。当您从服务器传回数据时,请将json对象与两个字段(如val和id)一起使用。然后在回调中只需执行$('textarea.+data.id)。text(data.val)。仍然会给我空文本。您可以共享您的HTML片段吗?我的意思是与其他表单控件(如
input
)一样,textarea不在value属性中存储其值。是的,我们可以在textarea中添加一个value属性。不,我的意思是它应该在不添加任何value属性()的情况下工作。是的,textarea.val();同样有效,但@BRG已经尝试过了,但对他不起作用,所以我给了他另一个选择。
die(json_encode(array('id' => $_POST['bid'], 'value' => 'whatever')));