我有一个评论系统,我想在其中添加删除选项,为此我已在每个评论中实施了一个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值。
请参阅并建议任何可行的方法。
感谢。
答案 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)