Jquery - 如何从重复的中获取当前输入值

I have a comment system in which i want to add delete option, for this i have implemented a POST form in each comment which posts comment-id to delete.php, it is working in php, but not in jquery.

i.e in order to delete comment a comment id must be posted to delete.php file which handles deletion of comment from database.

i am trying to fetch that comment-id from input value to post with jquery like this but it gives me the first comment-id value not the selected value.

Jquery

    $('form[name=comments]').submit(function(){

    var comment_delete = $("input[name=comment-delete]").val();
    //$.post('../../delete.php', {value1:comment_delete}, function(data){alert('deleted')});
    alert(comment_delete);
    return false;

    });

repeating form is like this

      <form name="comments" action="../../delete.php" method="post">
      <input name="comment-delete" type="hidden" value="<?php echo $list['comment-id']; ?>" />
      <input value="Delete" type="submit" />
      </form>

if i use .each() or .map() it gives me all the comment-id values.

Please see and suggest any possible way to do this.

Thanks.

To find the relevant input, that is the one of the form you submit, you could use this :

 $('form[name=comments]').submit(function(){
    var comment_delete = $(this).find("input[name=comment-delete]");

BTW, I'm not totally sure of what you do but you might be missing a .val() to get the value of the input.

try this

$('form[name=comments]').submit(function(){

  var comment_delete = $("input[name=comment-delete]", this);
  //$.post('../../delete.php', {value1:comment_delete}, function(data){alert('deleted')});
  alert(comment_delete);
  return false;

});

this refers to the form being submitted (more generally, to the event source). $(...) accepts a second parameter, which is then used as a context for the selector. $(selector, context) is equivalent to $(context).find(selector)

You have the same name on each hidden input, naturally you get all those inputs as you have not targeted the correct form when doing:

$("input[name=comment-delete]");

"this" whould point to the form inside your submit function. Try this.

$('form[name=comments]').submit(function(){

    var comment_delete = $(this).find("input[name=comment-delete]");
    //$.post('../../delete.php', {value1:comment_delete}, function(data){alert('deleted')});
    alert(comment_delete);
    return false;

});

As dystroy said, you are probably missing .val().

var commentId = $(this).find("input[name=comment-delete]").val();