正如标题所说,这是我尝试过的代码。表单必须逐个出现,因为以前表单中的信息决定了下一个表单的外观。
$(document).ready(function(){
$('#first_form').submit(function(){
$('#first_form').fadeOut('fast');
$('#second_form').fadeIn('fast');
});
});
<form action="new_patch.php" method="POST" id="first_form">
Title: <input type="text" name="patch" placeholder="Patch 4.20">
<br/>
Number of Champions: <input type="number" name="champ_number" min="1" max="99">
<br/>
<input type="submit" value="submit">
</form>
<form action="new_patch.php" method="POST" id="second_form" style="display: none;" >
<input type="text" value="text">
<input type="submit" value="submit">
<?php
$champ_number = null;
if(isset($_POST['champ_number']))
{
$champ_number = $_POST['champ_number'];
for($champ_number;$champ_number>0;$champ_number--)
{
echo "<br/>Champion ".$champ_number."<input type=\"number\" name=".$champ_number." min=\"1\" max=\"99\">";
}
}
?>
</form>
答案 0 :(得分:0)
你可以使用:
$('#first_form').submit(function(){
$('#first_form').fadeOut(function() {
$('#second_form').fadeIn('fast');
});
return false;
});
从jQuery文档中,语法为fadeIn( [duration ] [, complete ] )
,它接受一个持续时间和一个onComplete
回调,您可以在第一个完成时执行下一个操作。
答案 1 :(得分:0)
您正在混合客户端和服务器端表单代码。提交表单将完全重新加载页面,因此从代码的外观开始,当旧表单提交时,它将在新表单中淡入淡出,然后重新加载页面,以便旧表单无论如何都会再次显示。
你可以:
if (isset($_POST["First_form_submit"]) { Show second form... }
答案 2 :(得分:0)
我也是这样做的,只需在按钮上添加一个提交类,然后将其设为:
<input type="submit" value="submit" class="submit">
将脚本更改为单击功能。
$(document).ready(function(event){
event.preventDefault();
$('.submit').click(function(){
$('#first_form').fadeOut(400);
$('#second_form').fadeIn(400);
});
});
PS,您还需要阻止提交默认值...否则它只会提交表单,请参阅此JSfiddle