Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQuery中获取textarea的值_Jquery_Html - Fatal编程技术网

在jQuery中获取textarea的值

在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

我正在尝试使用jQuery获取textarea的值,我将通过AJAX提交该值,但它不起作用

<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提交值
// ...
});
现场演示:


我的方法更好,因为:

  • 它是不可知论的。TEXTAREA和submit按钮可以位于表单元素中的任何位置
  • 它为优美的堕落奠定了基础。(如果JavaScript失败,表单将正常提交,使您能够在服务器上设置回退机制。)
  • 表单的
    .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
        // ...
    });