id未知时获取textarea的值
Get value of textarea when id is unknown
我在获取 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
我能做什么?有什么想法吗?
尝试以下方法
var fieldValue = textarea.text();
textarea
里面没有value属性,它们的值在开始和结束标签之间。
使用
var textarea = $(this);
console.log(textarea.text());
Val 将无法工作,因为它 returns 是一个 "value" 属性。
啊,我想我忽略了我们在这里谈论 ajax。问题是 textarea 变量不存在于 ajax 回调函数的范围内。您应该考虑自动为文本区域分配一个 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')));
我在获取 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
我能做什么?有什么想法吗?
尝试以下方法
var fieldValue = textarea.text();
textarea
里面没有value属性,它们的值在开始和结束标签之间。
使用
var textarea = $(this);
console.log(textarea.text());
Val 将无法工作,因为它 returns 是一个 "value" 属性。
啊,我想我忽略了我们在这里谈论 ajax。问题是 textarea 变量不存在于 ajax 回调函数的范围内。您应该考虑自动为文本区域分配一个 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')));