【发布时间】:2015-03-02 07:02:04
【问题描述】:
此问题与 Phonegap 有关。我想在输入框上应用最大长度。但是在电子邮件类型的输入框中,maxlength 不起作用。 (在其他类型中,例如密码类型或电话类型效果很好。)当然,它在网络上效果很好。该问题仅发生在Phonegap。为什么你知道?
我的代码
<input type="email" data-role="none" placeholder="ID" maxlength="20"/>
+) 我找到了this question,但没有给我答案。而attr('maxlength','5') 也帮不了我..
编辑
我找到了this question。并品尝了4.2版本,4.4.2版本。这个问题当然不仅仅适用于 4.4.2 版本的设备。
已解决
为了查看答案,我尝试使用以下代码来解决:
var eInput = document.getElementById('Email-input');
var maxLength = eInput.maxLength;
eInput.onkeyup = function(e){
if( eInput.value.length > maxLength ){
eInput.value = eInput.value.substring(0, maxLength );
}
};
但是,如果我使用此代码,在输入超过最大长度后尝试擦除时,应该尝试更多的键盘删除按钮。这个错误的答案是在这个link 中找到的。需要使用空格或焦点来完成单词,而不是正确清除。 (该问题仅出现在某些版本上。-我认为可能是 4.4.2 或更高版本..)
所以我使用这个代码:
eInput.value += ' ';
而且效果很好!
所有代码:
var eInput = document.getElementById('Email-input');
var maxLength = eInput.maxLength;
eInput.onkeyup = function(e){
if(eInput.value.length > maxLength){
eInput.value += ' ';
eInput.value = eInput.value.substring(0, maxLength);
}
};
【问题讨论】:
-
您正在开发哪个 phonegap 版本?你在哪些手机上测试过你的代码?
标签: javascript html cordova