我在获取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
我该怎么办?有什么想法吗?
答案 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')));