$(this).data(“value”)没有使用$ .post传递值

My form

<div class="replymsg">
<form class="mainform" action="reply.php" method="POST">    
<textarea class="replytext" ></textarea>
<button data-value="<?php echo $id; ?>"       
class="replybutton">Submit</button>
</form>
</div>

$id comes from a MYSQL database. The following "test" code gives me the id of the reply form using Jquery:

<script>
$(".replybutton").click(function(){
alert($(this).data("value"));
});
</script>

Value of commentid :id is not passed when I use "actual" code for the website as follows (reply:replytext ... sends message is working):

<script>
$(document).ready(function(){
$(".replybutton").click(function(){
var id = $(this).data("value");
var replytext = $(".replytext").val();
$.post("reply.php",{ commentid: id, reply: replytext },function(data){
$("#result").html(data);    
    });
  });
}); 
</script>

Any ideas,any help is appreciated?

$(document).ready(function(){
$(".replybutton").click(function(e){
  e.preventDefault();
var id = $(this).data("value");
var replytext = $(this).prev().val();    
$.post("reply.php",{ commentid: id, reply: replytext
},function(data){
$("#result").html(data);    
     });
   });
});

Thanks for the help,I figured it out,my problem was sending Id and replytext in a comment/reply system when clicking replybutton. Working code above.

Most probably you should stop the form to submit if you are using ajax because a buttons default behavior is to submit the form:

<script>
$(document).ready(function(){
   $(".replybutton").click(function(e){
      e.preventDefault(); //<---------------stops the form submission here
      var id = $(this).data("value");
      var replytext = $(".replytext").val();
      $.post("reply.php",{ commentid: id, reply: replytext },function(data){
         $("#result").html(data);    
      });
   });
}); 
</script>

or add a type to the button:

<button type='button' data-value="<?php echo $id; ?>" class="replybutton">Submit</button>
//------^^^^^^^^^^^^

another way is to use .submit() event:

<script>
$(document).ready(function(){
   $(".mainform").submit(function(e){ //<-----pass the event here
      e.preventDefault(); //<---------------still you need this
      var id = $(this).find('.replybutton').data("value"); // find the elements
      var replytext = $(this).find(".replytext").val(); // and here.
      $.post("reply.php",{ commentid: id, reply: replytext },function(data){
         $("#result").html(data);    
      });
   });
}); 
</script>

and in this case you don't need to have a type to your button, but it's good to have it.

Submitting form with AJAX

In form

    <div class="replymsg">
        <form class="mainform" action="" method=" ">
            <textarea class="replytext" ></textarea>
            <input type="text" value="<?php echo $id; ?>" name="comment_id" id="comment_id" style="display: none"> <!-- this contain the ID-->
            <input type="submit" class="replybutton" id="replybutton" value="Submit">
        </form>
    </div>

use AJAX

<script>
    $(function(){
        $( "#replybutton" ).click(function(event)
        {
            event.preventDefault();

            var comment_id = $("#comment_id").val();
            var replytext = $(".replytext").val();

            $.ajax(
            {
                    type:"post",
                    url: "./reply.php",
                    data:{ id:comment_id, reply:replytext,},
                    success:function($data)
                    {
                       $("#result").html(data);
                    }
                });
        });
    });
</script>