在jQuery中获取textarea的值
我正在尝试使用jQuery获取textarea的值,我将通过AJAX提交该值,但它不起作用在jQuery中获取textarea的值,jquery,html,Jquery,Html,我正在尝试使用jQuery获取textarea的值,我将通过AJAX提交该值,但它不起作用 <div class = 'post_updates'> <div class = 'comment_updates'> <div class = 'commentdiv'> <textarea autocomplete = 'off' class='commenttext form-control' rows = '1' place
<div class = 'post_updates'>
<div class = 'comment_updates'>
<div class = 'commentdiv'>
<textarea autocomplete = 'off' class='commenttext form-control' rows = '1'
placeholder='Have your say...'></textarea>
<button class='comment btn btn-xs btn-primary onespacedown' value = '7'
type='submit'>Comment</button>
</div>
</div>
</div>
任何帮助都将不胜感激 唯一的问题是一个小的打字错误,你写的是
user\u commnet
,而不是user\u comment
只要一个改变就能让它工作:
也可以考虑使用,而不是<代码>。稍微快一点/更合理一点,因为一旦找到
.commentdiv
它就会停止,而不是一直遍历到根目录并可能返回多个元素。它必须
$('.commentdiv').on('click', '.comment', function () {
var $this = $(this);
var user_commnet = $('.commenttext').val();
var post = $(this).val();
//AJAX code goes here
alert ('Comment: ' + user_commnet + 'ID: ' + post);
})
见演示
我已经尝试了您的代码,如果您将该javascript代码包含到$(document).ready(function(){……})中,它就会起作用 另外,更改变量名user\u comment 像这样:
<script>
$(document).ready(function(){
$('.commentdiv').on('click', '.comment', function () {
var $this = $(this);
var user_comment = $this.parents('.commentdiv').find('.commenttext').val();
var post = $this.val();
//AJAX code goes here
alert ('Comment: ' + user_comment + 'ID: ' + post);
});
});
</script>
$(文档).ready(函数(){
$('.commentdiv')。on('单击','.comment',函数(){
var$this=$(this);
var user_comment=$this.parents('.commentdiv').find('.commenttext').val();
var post=$this.val();
//这里是AJAX代码
警报('Comment:'+user_Comment+'ID:'+post);
});
});
更好的方法是使用
元素并绑定“submit”事件处理程序,例如
HTML:
JavaScript:
$('#form').on('submit', function (e) {
// get the <textarea> value
var val = this.elements.comment.value;
// prevent form submission
e.preventDefault();
// submit value via Ajax
// ...
});
$('#form')。关于('submit',函数(e){
//获取值
var val=this.elements.comment.value;
//防止表格提交
e、 预防默认值();
//通过Ajax提交值
// ...
});
现场演示:
我的方法更好,因为:
.elements
数组用于访问其TEXTAREA元素,而不是不必要地使用jQuery的DOM遍历方法李>
var user_comment=$this.parents('.commentdiv').find('.commenttext').val()中存在拼写错误
你为什么不使用
来做这个呢?用户通信网
而不是用户注释
,除了它是一个ajax帖子之外,它是好的。最近的()
没有返回任何值。它返回undefine
。实际上,我不是在使用textarea
的地方形成的。当我通过AJAX
提交值时,不必使用表单,也不必在JavaScript代码中禁用Submit
。
<script>
$(document).ready(function(){
$('.commentdiv').on('click', '.comment', function () {
var $this = $(this);
var user_comment = $this.parents('.commentdiv').find('.commenttext').val();
var post = $this.val();
//AJAX code goes here
alert ('Comment: ' + user_comment + 'ID: ' + post);
});
});
</script>
<form id="form">
<textarea name="comment"></textarea>
<input type="submit">
</form>
$('#form').on('submit', function (e) {
// get the <textarea> value
var val = this.elements.comment.value;
// prevent form submission
e.preventDefault();
// submit value via Ajax
// ...
});