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')));