在 .html(' ') 之后通过 jquery 在 div 中显示一个表单;

Posted

技术标签:

【中文标题】在 .html(\' \') 之后通过 jquery 在 div 中显示一个表单;【英文标题】:show a form in div by jquery after .html(' ');在 .html(' ') 之后通过 jquery 在 div 中显示一个表单; 【发布时间】:2016-07-22 07:22:45 【问题描述】:

我想在没有重新加载页面的情况下单击按钮时更改 div 内容,并再次显示我的表单

我有这个代码

$('#reg_but').click(function()
   $.ajax(
     type:'POST',
     url:'login.php',
     data: 
         user : document.reg.user.value,
     ,
     success: function(data)
        if (data !=0)
            $('#my_div').html(data);
        
     
   )
);

function login_again()
   $('#my_div').html(' ');
   $('#my_div').html( *here i want show reg form* ) 
   //  >>  Here i want load again my form (reg form) << This is my problem



<body>
    <div id="my_div">
      <form name='reg' id='reg'>
        <input name="user" class="user" id="user">
        <input type="submit" onClick="return reg_but();"
      </form>
    </div>
    <div id="log_out" onClick="login_again()">Login Again & Log Out</div>
</body>

点击提交后显示 login.php 结果,然后点击 login_again() 我想在 my_div 中显示我的表单(reg 表单)。

【问题讨论】:

抱歉,不清楚你想在 login_again 中做些什么。 Ajax 已经在尝试从 Web 显示新的 html。是否要再次复制新的 html? 除此之外,此代码未将处理程序附加到提交按钮,因为缺少 id。尝试返回 false 以防止页面被发布而不是运行 Ajax。对于初学者,我会将您的提交按钮更改为 在您的 html 正文中,将脚本放在最后,否则标签将不存在jQuery 尝试附加处理程序。不过可能还有其他问题。 是的,我想再次复制新的 html。我想再次完整显示
...
点击再次登录后
【参考方案1】:

使用 jquery hide() 和 show()。 jQuery hide()

【讨论】:

【参考方案2】:

我通过这段代码解决了我的问题

index.php

$(document).ready(function()
   $('#my_div').load('form.html');
);
function reg_but()
       $.ajax(
         type:'POST',
         url:'login.php',
         data: 
             user : $('#user').val(),
         ,
         success: function(data)
            if (data !=0)
                $('#my_div').html(data);
            
         
       )
    ;

    function login_again()
       $('#my_div').html(' ');
       $('#my_div').load('form.html');

    

    <body>
        <div id="my_div"></div>
        <div id="log_out" onClick="login_again()">Login Again & Log Out</div>
    </body>

form.html

<input name="user" class="user" id="user">
<input type="submit" onClick="return reg_but();">

【讨论】:

以上是关于在 .html(' ') 之后通过 jquery 在 div 中显示一个表单;的主要内容,如果未能解决你的问题,请参考以下文章

在延迟()之后通过jQuery分配“选定”选项

如果在所有页面 HTML 之后加载 jQuery 脚本,它们是不是仍然需要 $(document).ready?

在 Jquery 中拖放 html 数据

IE+jQuery+Ajax+XHTML:HTML 在 .html() 或 .innerHTML 之后被剪切

页面用jquery的load()方法加载新页面之后怎么返回上一页

在 jquery table.load() html 元素变得未定义之后