所以我有一个通过Ajax POST请求提交的表单。单击“发送”按钮后,将删除表单并将处理图形放在其位置。表单数据被发送到我的PHP脚本,经过验证,如果一切都结束,将返回一条感谢信息以替换处理图形。但是如果存在验证错误,我会将整个表单的副本回显给div,其中原始表单显示错误在表单中的位置。这一切都很好,除非回显表单的副本,表单的JS不起作用? JS的发送按钮或我的焦点/模糊功能都不在输入上。感谢您的任何帮助。
答案 0 :(得分:2)
您是否尝试隐藏表单并显示处理图形而不是删除表单?当您出现错误时,隐藏图形并再次显示表格 使用此解决方案,错误处理将会更加困难,但您不会在项目的两个位置使用表单!
答案 1 :(得分:2)
从DOM中删除表单时,事件也会被取消。您可以拥有一个设置这些事件的函数,并在响应中出现错误时调用它。
答案 2 :(得分:0)
当您将HTML混合Javascript插入某个节点(例如div)时,它与第一次作为整个文档的一部分提供它不同。作为innerHTML或某些textnode插入时,它不被视为脚本。
您有几个选择:
**切换可见性并编码错误响应(例如,以JSON格式)
创建2个div,一个包含表单,另一个包含PROCESSING图像。
处理时将表格切换为无,以及要阻止的图像。
当您处理完表单并且出现错误时,请以某种方式对其进行编码(例如JSON)并将其发回,然后让页面上的EXISTING脚本解释响应。
例如,您可以创建一个包含每个formelementname的结构以及与之关联的错误,因此如果您在每个formelement旁边创建一个空字符,您可以在表单中轻松突出显示错误。
当答案从服务器到达时,您可以再次显示该表单,并显示:none PROCESSING div。
**解释你的回答(WITH JAVASCRIPT)
这更难,但也更优雅。 我曾经需要这个(从XHR请求返回的Javascript),而Randy Webb用一种聪明的方法帮助我。这里解释得太多了。 阅读此主题以获取更详细的方法,并链接到Randy的脚本:
答案 3 :(得分:-2)
$.ajax({
url: 'mypage.html',
success: function(){
alert('success');
**<ADD YOUR CUSTOM CODE AFTER AJAX SUCCESS - JS CODE>**
},
error: function(){
alert('failure');
}
});
答案 4 :(得分:-2)
你也可以参考。 http://docs.jquery.com/Ajax_Events
$.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ......
});