如何默认隐藏表单并单击显示

时间:2016-04-27 06:47:12

标签: javascript php jquery

我有一个评论表格,这是由一个php循环显示

Post 1
Comment box 1

Post 2
Comment box 2

我想隐藏评论框,当用户点击评论链接时,表格应该显示

这是我尝试的内容

$(document).ready(function() {

    $("#showActionComment").hide();
    $("#showActionComment").click(function() {
        $("#comForm").show();
    });
});

HTML

php while loop starts here
Post 1
<a href="javascript:void(0);" id="comForm">Comment</a>
<form action="/comment.php" class="form-horizontal" id="showActionComment">
<input type="text" name="comment">
</form>

php while loop ends here

由于循环可能有15个帖子 以上代码在我的案例中不起作用

4 个答案:

答案 0 :(得分:3)

您在具有相同ID的循环中创建元素。 HTML中的标识符必须是唯一的,否则HTML无效。您可以使用类选择器和那里的关系来遍历元素

CSS     .showActionComment {display:none;}

用于生成HTML的PHP​​脚本

php while loop starts here

    <a href="javascript:void(0);" class="comForm">Comment</a>
    <form action="/comment.php" class="form-horizontal showActionComment">
        <input type="text" name="comment">
    </form>

php while loop ends here

jQuery脚本,您需要在comForm元素上订阅点击事件而不是form。在我使用.next()

的代码段中
  

获取匹配元素集中每个元素的紧随其后的兄弟。

$(document).on('click',".comForm", function(event) {
    event.preventDefault();
    $(this).next(".showActionComment").show();
});

注意:在动态生成元素时,使用Event Delegation委托事件方法.on()

一般语法

$(document).on('event','selector',callback_function)

答案 1 :(得分:0)

为该类设置 display:none 属性。

.form-horizontal{
     display:none
}

每当您刷新页面时,它都不会显示表单   在点击事件中,它会根据您的点击事件将显示:无更改为显示:阻止

答案 2 :(得分:0)

默认情况下通过css隐藏表单

#comForm {
display:none;
}

然后点击按钮后显示

 $("#showActionComment").click(function() {
        $("#comForm").show();
    });

答案 3 :(得分:0)

也许你是这个意思 - 注意ID必须是唯一的:

&#13;
&#13;
$(function() {
  $(".showForm").on("click",function(e) {
    e.preventDefault();
    $(this).next(".showActionComment").toggle();
  });
});
&#13;
.showActionComment { display:none }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="enableJavaScript.html" class="showForm">Comment</a>
<form action="/comment.php" class="form-horizontal showActionComment">
<input type="text" name="comment">
</form><br/>
<a href="enableJavaScript.html" class="showForm">Comment</a>
<form action="/comment.php" class="form-horizontal showActionComment">
<input type="text" name="comment">
</form>
&#13;
&#13;
&#13;

如果您使用AJAX加载评论和链接,请更改

  $(".showForm").on("click",function(e) {

  $(document).on("click",".showForm",function(e) {