我在选择textarea
的值时遇到了一些问题。这是我的HTML:
<tr>
<td>
<textarea name="notes" id="3"></textarea>
</td>
<td>
<span class="notesbtn" id="3">save</span>
</td>
</tr>
我的jQuery代码,我尝试使用触发范围按钮的id(相同)来textarea
:
$(document).ready(function(){
$('.notesbtn').click(function(){
var jid = $(this).attr('id');
var uid = <? echo $user_info['id'];?>;
var txt = $('textarea#'+jid).val();
$.ajax({
type: "POST",
url: "/ajax/save_anote.php",
data: {
jid: jid,
uid: uid,
txt: txt
},
success: function(msg) {
// window.location.reload();
}
})
});
但是我没有得到textarea
的val。我的错是什么?
答案 0 :(得分:2)
请勿使用以数字开头的标识符。
不要两次使用相同的标识符。它们应该是独特的。
<强> HTML 强>:
<tr>
<td>
<textarea name="notes" id="textarea-3"></textarea>
</td>
<td><span class="notesbtn" data-id="3">save</span>
</td>
</tr>
<强> JS 强>:
$('.notesbtn').click(function () {
var jid = $(this).data('id');
var uid = <? echo $user_info['id']; ?>;
var txt = $('#textarea-' + jid).val();
$.ajax({
type: "POST",
url: "/ajax/save_anote.php",
data: {
jid: jid,
uid: uid,
txt: txt
},
success: function (msg) {
// window.location.reload();
}
});
});
答案 1 :(得分:0)
我认为你不能只设置id号码。试试这个
<tr><td><textarea name="notes" id="a3"></textarea></td><td><span class="notesbtn" rel="3">save</span></td></tr>
$(document).ready(function(){
$('.notesbtn').click(function(){
var jid = $(this).attr('rel');
var uid = <? echo $user_info['id'];?>;
var txt = $('textarea#a'+jid).val();
$.ajax({
type: "POST",
url: "/ajax/save_anote.php",
data: {jid,uid,txt},
success: function(msg) {
//window.location.reload();
}
})
});
答案 2 :(得分:0)
id应该是唯一的。
将您的代码重写为:
<tr>
<td>
<textarea name="notes" id="textarea3"></textarea>
</td>
<td>
<span class="notesbtn" id="3">save</span>
</td>
</tr>
因为你正在检索它
var txt = $('textarea#'+jid).val();
答案 3 :(得分:0)
您好我已经通过您的代码使用相同的ID,但ID应该是唯一的。无论如何我使用您的代码创建了一个示例..
javascript代码:
$(document).ready(function(){
$('.notesbtn').click(function(){
var jid = $(this).attr('id');
var txt = $('textarea#'+jid).val();
alert(txt);
});
});
见工作示例: - http://jsfiddle.net/daL6s/19/
答案 4 :(得分:0)
正如其他答案中正确指出的那样:首先,id应该是唯一的和辅助的,避免id从数字开始。另外,您的问题的典型方法是通过data-
属性提供用户数据,因此html将是:
<tr>
<td>
<textarea name="notes" id="textarea3"></textarea>
</td>
<td>
<span class="notesbtn" data-textarea="#textarea3">save</span>
</td>
</tr>
和JavaScript:
// var jid = $(this).attr('id');
var txt = $($(this).data('textarea')).val();
有关详细信息,请参阅jQuery docs