2014-07-24 60 views
3

我正在做一個電子郵件驗證;在電子郵件字段中,用戶可以放置空白空間。如何刪除輸入字段中的空白並重新分配修剪值

所以我決定$trim的輸入值,並重新分配給輸入字段。

它的工作原理沒有任何問題,但是當我使用空格鍵幾次並從輸入焦點出來並返回時,在輸入字段中輸入空間。

事件雖然我正在修整每個input - 我不知道爲什麼空間與input字段。

請問有沒有正確的方法?

這裏是我的嘗試:

$('#email').on('input change',function(){ 
    this.value = $.trim(this.value); //re-assigning trimmed value, but not works when enterning space and focus out. when focus in the space being in the input 
    validateEmail.init(this.value); 
    if(validateEmail.done()){ 
     console.log('this is correct'); 
    } 
}); 

//enter some space and focus out, then come back to input field you can see white spaces in the field 

Live Demo

+0

你真的需要在輸入框中刪除每一個空間?你爲什麼不把它傳遞給你的電子郵件驗證時修剪它? ('validateEmail.init($。trim(this.value));') – Padarom

+0

在FF中正常工作,但不在鉻 – imbondbaby

+0

我想避免空白基本上,因爲這是電子郵件地址。再次用戶可以複製粘貼一些不需要的白色空間..它在輸入字段變得非常冗長。 – 3gwebtrain

回答

1

嘿,我通過你的榜樣了..

我已經改變了它的約束力,它正在按照預期...

$('#email').on('keyup change',function(){ 

    var text = $.trim($(this).val()) 
    this.value="";  
    this.value=text; 

    validateEmail.init(this.value); 
    if(validateEmail.done()){ 
     console.log('this is correct'); 
    } 
}); 

工作示例: - http://jsfiddle.net/SG6YN/10/

現在,如果用戶嘗試用粘貼文本的空間,然後它會刪除這些空間..

感謝

+0

那麼,根據你'輸入'有問題嗎?我試圖不按預期工作。請在Chrome瀏覽器中測試pelase – 3gwebtrain

+0

嘿,我已經更新了它的代碼...你現在可以檢查它將刪除從開始和結束的所有空間 –

+0

是的,它的工作。我使用羅德的想法更新了代碼,如下所示: 'var value = $ .trim(this.value).replace(/ \ s +/g,'');' - 正常工作 – 3gwebtrain

1

限制用戶在現場

​​

進入的空間,但如果用戶拷貝並粘貼包含文本的空白,然後它不起作用。所以,在你的onChange函數中添加以下代碼

$('#email').on('input change',function(){ 
    $(this).val($(this).val().replace(/\s+/g, '')); 
    validateEmail.init(this.value); 
    if(validateEmail.done()){ 
     console.log('this is correct'); 
    } 
}); 

工作小提琴是here

+0

嘗試在開始時添加多個空間並粘貼在文本框中它不會工作... –

+0

它工作正常。我測試了Chrome,Mozilla。在哪個瀏覽器中它不工作 – Roshan

+0

在chrome中試試這個關鍵詞「text」忽略「來自它(它有3個空格開始和結束) –