2014-07-24 56 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个空格开始和结束) –