JS没有使用echos PHP

时间:2012-07-30 08:14:39

标签: php javascript ajax

所以我有一个通过Ajax POST请求提交的表单。单击“发送”按钮后,将删除表单并将处理图形放在其位置。表单数据被发送到我的PHP脚本,经过验证,如果一切都结束,将返回一条感谢信息以替换处理图形。但是如果存在验证错误,我会将整个表单的副本回显给div,其中原始表单显示错误在表单中的位置。这一切都很好,除非回显表单的副本,表单的JS不起作用? JS的发送按钮或我的焦点/模糊功能都不在输入上。感谢您的任何帮助。

5 个答案:

答案 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的脚本:

http://tinyurl.com/6pakdu

答案 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
   }
   // ......
 });