2014-09-03 62 views
0

我试图发布以下东西:
我有一个输入字段,用户可以在其中键入他们的电话号码。
前3个字符在输入字段中固定,但可以通过下拉框进行更改。
例如+32 xx月xx年xx月xx(+32的不能改变 - >与JS防止)防止或处理selectAll动作对焦

我的解决方案还没有完全失效证明,但我现在的主要问题是,我需要防止的选择前三位......

为此我已经输入这个代码(JQuery的):
loginMobileInput.select(function(e){ if (loginMobileInput[0].selectionStart < countryCodeLength) { loginMobileInput[0].selectionStart = countryCodeLength; } });

这工作得很好,但我的问题是,聚焦状态,一切得到的反正选择!
处理焦点事件并不重要 - > selectAll事后会发生......
防止mouseUp有助于某种方式,但会破坏取消选择后的正常行为,并且不会阻止选择全部TAB动作...

我需要做什么来防止或处理这个selectAll?

提前致谢!

回答

0

下面一个例子,你如何能做到这一点,使用:KEYUP,KeyDown和改变

所有从jQuery的

$('#phone').keydown(function(e) { 
    if(e.which == 8) 
    { 
     if ($('#phone').val() == $('#country_code').val()) 
      return false; 
    } 
}); 

$('#phone').keyup(function(e) { 
    if ($('#phone').val().substr(0,3) != $('#country_code').val()) 
     $('#phone').val($('#country_code').val() + $('#phone').val()); 
}); 

http://jsfiddle.net/3L2qytp2/

+0

啊哈,我忘了提...自动完成应工作......这就是说,如果例如默认情况下选择了+44,并且自动完成添加了+32数字,则下拉应该自动选择+32,而数字应该保留......基本上,我用超时和keyUp/keyDown/select实现了所有这些......但是在重点上,可以选择全部,并剪切/编辑它 – 2014-09-03 13:37:43

+0

我已经与你的代码进行了融合,并且设法使它工作=)所以我接受了你的答案!谢谢! – 2014-09-03 13:51:50