2010-11-23 43 views
1

嗨我使用jQuery的验证(真棒)脚本来验证一个小窗体。这只是一个电子邮件注册,并没有太多的空间来显示错误信息。我可以通过成功的AJAX提交将输入的值更改为“Thank You”,但如果将其更改为显示正确的错误消息(如果消息无效),则可以将其更改为“Thank You”。更改文本输入的值如果无效

HTML

<div id="emailBox"> 
    <form id="email" action="/PHP/email-cURL.php" method="post"> 
    <input type="text" id="e" name="email1" value="Email Sign Up" class="swap_value signup" /> 
    <input type="submit" value="" id="signUp" /> 
    </form> 
</div> 

和JS

$("#email").validate ({ 
     errorElement: "//what do I wrap error msg in to populate value?", 
      errorPlacement: function(error, element) { 
       error.appendTo(element.parent("div")); 
      }, 

      submitHandler: function(form) { 
      var dataString = $(form).serialize(); 
       $.ajax({ 
        type: $(form).attr('method'), 
        url: form.action, 
        data: dataString, 
        clearForm: true, 
        success: function(data) { 
         if (data=="Error") { 
          $("#e").val('Error'); 
         } else { 
          $("#e").val('Thank You'); 
          } 
        } 
       }); 
      return false; 

      }, 
         //rules, 
         //messages 

是否有一个简单的方法来做到这一点?我不需要大量的代码,因为它只是一个简单的表单输入。

谢谢!

+0

嘿,等一下。我从jQuery论坛了解你吗? :) – 2010-11-23 01:40:16

+0

嘿怎么了Sime?是啊,你帮了我不少时间,有一段时间没有见过你,希望你能和你在一起。 – 2010-11-23 02:44:42

回答

1

尝试返回JSON。这PHP代码:

echo json_encode(array('success'=>false,'errorMsg'=>'Failed to set x'); 

输出这个JSON:

{"success":false,"errorMsg":"Failed to set x"} 

,并调整你的代码来处理JSON

var dataString = $(form).serialize(); 
      $.ajax({ 
       type: $(form).attr('method'), 
       url: form.action, 
       data: json, 
       clearForm: true, 
       success: function(data) { 
        if (undefined !== data && true === data.success) { 
         $("#e").val('Thank you'); 
        } else { 
         var error = undefined === data.errorMsg ? 'Unknown error' : data.errorMsg; 
         $("#e").val(error);              } 
       } 
0

发送JSON返回给客户端,是这样的:

{ "status" : "error", "message" : "Email address already exists" } 

,并在客户端上,设置$阿贾克斯的dataType选项设置为“JSON”,并访问返回的对象的属性:

success: function(json) { 
      if (json.status == "error") { 
       $("#e").val(json.message); 
      } else { 
       $("#e").val('Thank You'); 
      } 
     }