【问题标题】:jquery: hide/show something after form submit/page reloadsjquery:表单提交/页面重新加载后隐藏/显示某些内容
【发布时间】:2009-03-06 17:55:53
【问题描述】:

在我的页面上,我的表单在页面加载时默认为 .hide()。这两种形式是帐户创建和登录。一旦用户单击相应的链接 (.show()),它们就会显示给用户。

显然,如果任一表单出现故障,我希望表单保持打开状态,而不是在页面加载提交后隐藏。

现在表单正在使用简单的 html 表单发布来访问数据库。是否有更好的方法来使用 jquery 来做到这一点,这不是太复杂? (我对它还很陌生,但正在学习)

谢谢

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    您可以将处理程序分配给表单的“提交”操作,并对其进行任何您喜欢的操作。异步发送,再次删除表单,将其留在那里,无论如何。这是一个起点:

    $('#myloginform').submit( function() {
      var form = $(this);
      $.post(
        form.attr('action'),
        form.serialize(),
        success: function( response ) {
          // do something when all is well
          form.hide();
        },
        failure: function( respones ) {
          // do something when everything explodes
          form.addClass('error');
        }
      );
      return false; // don't fire the regular handler
    } );
    

    jQuery API 文档将为您提供有关submit(和类似)处理程序以及$.post 和朋友的更多详细信息。

    编辑:这段代码应该进入你的$(document).ready处理程序,我假设你已经有你的shows和hides在那里。

    【讨论】:

      【解决方案2】:

      我会试试jQuery Form Plugin。它允许您使用 ajax 发布表单。

      成功后,您可以将浏览器重定向到它通常会在提交时到达的位置。

      出现错误时,您可以显示错误消息并将用户留在表单上。

      【讨论】:

      • 我不久前尝试过使用它,但有一次感到困惑 - 可以再看看。谢谢。
      【解决方案3】:

      假设您不能使用 ajax,请在 URL 或页面正文中添加一些内容,说明发生了错误。然后做类似 ..

      jQuery(document).ready( function()
      {
        if(form_error) // check for the error in some way (query_string, a div with an 'error class'
        {
          jQuery('.form-selector').show();
        }
      });
      

      【讨论】:

        猜你喜欢
        • 2019-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-14
        相关资源
        最近更新 更多