2014-06-24 78 views
2

我覺得我已經嘗試每一個選項在那裏,但沒有運氣香菜遠程此值似乎無效

我似乎根本無法得到,讓我驗證單個輸入字段的響應正確(用戶名)使用Ajax和香菜

這裏有三次嘗試我用盡沒有任何的運氣什麼那麼:

1企圖

HTML:

  <input type="email" class="form-control" id="txt_username" name="username" 
       data-parsley-remote-validator="remote-email" 
       data-parsley-trigger="change" 
       data-parsley-remote-validator="reverse" 
       data-parsley-remote="/User/user_exists"> 

的Javascript:

window.ParsleyExtend.asyncValidators['remote-email'] = function (xhr) { return xhr.status === 404; }; 

testet JSON響應:

print 404; 
print 200; 
print json_encode(404); 
print json_encode("404"); 
print json_encode(200); 
print json_encode("200"); 

2.嘗試

Login.js:

jQuery(document).ready(function() 
{ 
    $('#form_login').parsley(); 

    $('[name="username"]').parsley() 
     .addAsyncValidator('remote-email', function (xhr) { 
      return 404 === xhr.status; 
     }, '/User/user_exists', 
     { "type": "POST", "dataType": "jsonp", "data": { 'request': 'ajax' } } 
    ); 
}); 

HTML:

  <input type="email" class="form-control" id="txt_username" name="username" 
       data-parsley-remote-validator="remote-email" 
       data-parsley-trigger="change"> 

的第一次嘗試是給我的最好成績不過不管我怎麼做,總是說了一句:This value seems to be invalid.

任何人都可以請點我在正確的方向! ?

回答

0

如果要更改默認消息,一個屬性添加到您的輸入:

<input type="email" class="form-control" id="txt_username" name="username" data-parsley-remote data-parsley-remote-message = 'your message' data-parsley-remote-validator="remote-email" data-parsley-trigger="change"> 

在URL '/用戶/ user_exists' 你需要回應是這樣的:

// PHP code 
if($_POST['request'] == 'ajax'){ 
    header("HTTP/1.0 200");// Right 
} 
else{ 
    header("HTTP/1.0 404"); // Wrong 
} 

在您需要檢查此行後:

return 200 === xhr.status;