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

时间:2012-10-25 07:41:45

标签: php jquery html

我有一个评论系统,我想在其中添加删除选项,为此我已在每个评论中实施了一个POST表单,其中comment-id发布到 delete.php ,它正在运行在PHP中,但不是在jquery。

即为了删除评论,必须将评论ID发布到delete.php文件,该文件处理从数据库中删除评论。

我正在尝试从输入值中获取该comment-id以使用jquery发布,但是它给了我第一个comment-id值而不是所选值。

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;

    });

重复表单就像这样

      <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>

如果我使用.each().map(),则会为我提供所有评论ID值。

请参阅并建议任何可行的方法。

感谢。

3 个答案:

答案 0 :(得分:3)

要查找相关输入,即您提交的表单,您可以使用:

 $('form[name=comments]').submit(function(){
    var comment_delete = $(this).find("input[name=comment-delete]");
顺便说一句,我不完全确定你做了什么,但你可能会错过.val()来获取输入值。

答案 1 :(得分:2)

您在每个隐藏的输入上都有相同的名称,当然您可以获得所有这些输入,因为您在执行操作时没有针对正确的表单:

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

&#34;这&#34; whould指向提交函数中的表单。试试这个。

$('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;

});

正如破坏所说,你可能缺少.val()。

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

答案 2 :(得分:1)

试试这个

$('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指的是提交的表单(更一般地说,指向事件源)。 $(...)接受第二个参数,然后将其用作选择器的上下文。 $(selector, context)相当于$(context).find(selector)