我有一个ajax函数来获取提交表单数据。我想从不同的id中获取值。为此,我为每个元素id附加唯一编号。
Before append unique value comment_input
after adding unique value comment_input_86
HTML代码:
<textarea name="comment_input" placeholder="Type comment" class="comment-input" id="comment_input_<?php echo $data['post_id']; ?>"></textarea>
这是我的ajax功能:
var elements = document.getElementsByName( 'comment_input' );
var cmt_id = elements[0].getAttribute( 'id' );
$('#'+cmt_id).on('keydown', function(event) {
if (event.keyCode == 13){
if (!event.shiftKey) {
var comment = $('#'+cmt_id).val();
var form_data = {
comment_input : comment,
user_Id : $('.user_Id').val(),
post_Id : $('.post_Id').val(),
ajax : '1'
};
$.ajax({
url: "<?php echo site_url('comment/post_comment/'); ?>",
type: 'POST',
async : false,
data: form_data,
success: function(data) {
$('#'+cmt_id).val('');
alert('#'+cmt_id);
location.reload();
}
});
}
}
});
在上面的函数中,我得到了元素的每个Id,并将其追加到ajax函数中。但它不起作用。任何解决方案?
答案 0 :(得分:1)
您不需要使用元素ID,您可以尝试使用textarea-name属性,例如
var elements = document.getElementsByName( 'comment_input' );
var cmt_id = elements[0].getAttribute( 'id' );
$(elements).on('keydown', function(event) {
var $this=$(this); // add this line
if (event.keyCode == 13){
if (!event.shiftKey) {
var comment = $this.val(); // change here
var form_data = {
comment_input : comment,
user_Id : $('.user_Id').val(),
post_Id : $('.post_Id').val(),
ajax : '1'
};
$.ajax({
url: "<?php echo site_url('comment/post_comment/'); ?>",
type: 'POST',
async : false,
data: form_data,
success: function(data) {
$this.val(''); // change here
alert('Changed value '+$this.value); // change here
location.reload();
}
});
}
}
});
答案 1 :(得分:1)
试试这个:
var elements = document.getElementsByName( 'comment_input' );
$(elements).each(function(){
var cmt_id = $(this).attr('id');
$('#'+cmt_id).on('keydown', function(event) {
if (event.keyCode == 13){
if (!event.shiftKey) {
var comment = $('#'+cmt_id).val();
var form_data = {
comment_input : comment,
user_Id : $('.user_Id').val(),
post_Id : $('.post_Id').val(),
ajax : '1'
};
$.ajax({
url: "<?php echo site_url('comment/post_comment/'); ?>",
type: 'POST',
async : false,
data: form_data,
success: function(data) {
$('#'+cmt_id).val('');
alert('#'+cmt_id);
location.reload();
}
});
}
}
});
});
&#13;