gpt4 book ai didi

javascript - 如何动态切换表单可见性?

转载 作者:行者123 更新时间:2023-11-28 16:30:01 24 4
gpt4 key购买 nike

我有一个页面,用户可以在其中动态创建新表单。为每个新的表单按钮创建。默认情况下隐藏表单。我需要在单击该按钮时切换表单可见性。现在我正在使用下面的 javascript 代码及其工作

 $(document).ready(function(){
$("#button1").click(function(){
$("#1").css({"display":"block"});
$("#2").css({"display":"none"});
$("#3").css({"display":"none"});

});
$("#button2").click(function(){
$("#2").css({"display":"block"});
$("#1").css({"display":"none"});
$("#3").css({"display":"none"});
});
...

现在,当用户创建表单时,我手动修改 javascript,但问题是我现在的表单太多了,而且我还有更多。我需要解决方案来绑定(bind)表单按钮并切换其可见性。任何建议表示赞赏。编辑我实际使用的代码:

while ($row = $result9->fetch_assoc()) 
{
echo "<input class='btn btn-default' type='button' id='".$row['o_ime']."' name='button' value='".$row['o_ime']."'>";
}
echo "<form class='form-inline' role='form' name='$i' id='$i' style='display:none' action='naruci.php' method='POST' onsubmit='return validateForm()'>";
form elements
echo "</form>";

最佳答案

首先,您的 DOM 中不能有相同的 ID。

因此,使用类代替 ID。并使用 jquery's class selector .

所以要捕获事件,只需使用类选择器即可。

并且还使用隐藏和显示 jquery API 来 show/hide元素。

 $(".new-btn").click(function(){
$("form").hide(); // close all forms
$("this").closest("form").show(); // show parent form
});

接下来我注意到,对于动态元素,它不能被普通的点击事件捕获。在 API 上使用 jquery。

$(".new-btn").on('click', function(){
$("form").hide(); // close all forms
$("this").closest("form_").show(); // show parent form
// This is the reason it is not working because I forgot the underscore
});

更新:它应该看起来像这样:

while ($row = $result9->fetch_assoc()) 
{
echo "<input class='btn btn-default' type='button' id='".$row['o_ime']."' name='button' value='".$row['o_ime']."'>";

// We changed the form ID in this section
echo "<form class='form-inline' role='form' name='$i' id='form_".$row['o_ime']."' style='display:none' action='naruci.php' method='POST' onsubmit='return validateForm()'>";
form elements
echo "</form>";
}

在我的查询中,我将创建一个事件来捕获我的按钮点击:

$('.btn').on('click', function(){ // Listen all click events of buttons with class `btn`
var id = $(this).attr('id'); // Get ID of focus button
var formName = 'form' + id; // Append form string in the id to match form's ID

$('form').hide(); // Hide all forms
$('#' + formName).show(); // Show exact form
});

关于javascript - 如何动态切换表单可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38496132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com