【发布时间】:2009-03-06 17:55:53
【问题描述】:
在我的页面上,我的表单在页面加载时默认为 .hide()。这两种形式是帐户创建和登录。一旦用户单击相应的链接 (.show()),它们就会显示给用户。
显然,如果任一表单出现故障,我希望表单保持打开状态,而不是在页面加载提交后隐藏。
现在表单正在使用简单的 html 表单发布来访问数据库。是否有更好的方法来使用 jquery 来做到这一点,这不是太复杂? (我对它还很陌生,但正在学习)
谢谢
【问题讨论】:
在我的页面上,我的表单在页面加载时默认为 .hide()。这两种形式是帐户创建和登录。一旦用户单击相应的链接 (.show()),它们就会显示给用户。
显然,如果任一表单出现故障,我希望表单保持打开状态,而不是在页面加载提交后隐藏。
现在表单正在使用简单的 html 表单发布来访问数据库。是否有更好的方法来使用 jquery 来做到这一点,这不是太复杂? (我对它还很陌生,但正在学习)
谢谢
【问题讨论】:
您可以将处理程序分配给表单的“提交”操作,并对其进行任何您喜欢的操作。异步发送,再次删除表单,将其留在那里,无论如何。这是一个起点:
$('#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在那里。
【讨论】:
【讨论】:
假设您不能使用 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();
}
});
【讨论】: