1

我有一个评论系统,我想在其中添加删除选项,为此我在每个发布comment-iddelete.php的评论中实现了一个 POST 表单,它在 php 中工作,但在 jquery 中没有。

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

我正在尝试从输入值中获取该评论 ID,以便像这样使用 jquery 发布,但它给了我第一个评论 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 值。

请查看并建议任何可能的方法来做到这一点。

谢谢。

4

3 回答 3

2

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

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

顺便说一句,我不完全确定你做了什么,但你可能会错过 a.val()来获取输入的值。

于 2012-10-25T07:45:11.190 回答
1

您在每个隐藏输入上都有相同的名称,自然会得到所有这些输入,因为您在执行时没有针对正确的形式:

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

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

});

正如dystroy所说,您可能缺少.val()。

var commentId = $(this).find("input[name=comment-delete]").val();
于 2012-10-25T07:47:44.663 回答
0

试试这个

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

于 2012-10-25T07:46:51.513 回答