我有下面的代碼在頁面加載運行。我只想在用戶完成在文本框中寫入時運行它。函數在頁面加載時發送ajax請求
代碼是:
$(document).ready(function() {
$("#user_email").on('change keyup paste', function() {
$.post('/users/check_email?email=' + $("#user_email").val(), function (data) {
console.log(data);
});
});
});
文本字段:
<%= f.email_field :email, :type=>"email" %>
我不想在頁面加載,但是當用戶鍵入的東西在裏面,那麼它應該做的工作,阿賈克斯運行它。
此外,如果用戶寫1或3個字符,它開始發送ajax。我需要檢查電子郵件,以便如何處理此用例?
更新
重要的問題是我在文本框救了我的電子郵件,類似的形式自動填寫信息,這樣當頁面加載時,它發送Ajax請求,並開始顯示XYZ電子郵件已經存在於系統中。 我不想在第一次加載頁面時發送ajax請求,但我想在有人編寫並完成寫入電子郵件時使其工作。
我已更新我的問題,並感謝您的更正;) – LearningROR
沒有想過自動填充,blech。 :-) –
@LearningROR:編輯表示字面上沒有什麼比這個問題更相關。該代碼應該已經按照預期工作,除非在加載DOM後以某種方式填充輸入之後還有別的東西。您可以在「change」事件的回調中添加嚴格的檢查,但真正的電子郵件檢查應該發生在服務器端而不是客戶端(最終兩者)。您可能要遵循的過程是:1)編寫(或更好地搜索)電子郵件正則表達式。 2)獲取user_email值並檢查長度是否大於3. 3)兩次檢查後都要執行ajax調用。 – briosheje