2010-11-23 47 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'); 
      } 
     }