Phonegap-输入类型的电子邮件maxlength不起作用
Phonegap - input type email maxlength is not working
这个问题在Phonegap上。我想在输入框上应用最大长度。但在电子邮件的输入框中,键入maxlength不起作用。(在另一种类型中,如密码类型或电话类型效果良好。)当然,它在网络上也很好。该问题仅发生在Phonegap。为什么你知道?
我的代码
<input type="email" data-role="none" placeholder="ID" maxlength="20"/>
+)我发现了这个问题,但没有给我答案。attr('maxlength','5')
也帮不了我。。
编辑
我发现了这个问题。并品尝了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 );
}
};
然而,如果我使用这个代码,当输入超过最大长度后尝试擦除时,应该尝试更多的键盘删除按钮。这个错误的答案就在这个链接中找到了。需要使用空格或焦点突出来完成单词,而不是正确清除。(这个问题只出现在某些版本上。-我想可能是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);
}
};
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 );
}
};
或
<input type="email" onKeyDown="if(this.value.length==10) this.value = this.value.slice(0, -1);">
或者你可以试试这个技巧
<input type="email" name="email" pattern=".{6,10}" title="Six or less 10 characters">
也许试试jquery然后
看,这是工作
这似乎是android 4.1.2的一个错误?那么你可以试试其他的安卓版本吗?此外,你是否也有同样的问题(在达到最大输入值后,无法在表单中再做任何事情)?
你可以尝试在谷歌安卓论坛上写一些评论建议的javascript
I、 也花了好几天时间找到确切的原因。我也找到了一个解决方案:您需要绑定到keypress事件(尚未尝试使用keyup或keydown,但这可能也有效)并删除maxlength属性。我们的解决方案是添加一个data-xxx属性,并在事件处理程序中控制长度。我们已经在做了,但只要有最大长度,并且输入了太多的键击,它就会锁定键输入:不仅在页面上,而且在整个窗口上(我在同一个窗口中导航到谷歌,无法输入键击)。
所以你正在寻找一些看起来像这样的代码:(署名为@srekumar sh)
HTML:
<textarea ng-model="model " rows="3" maxlength="100" cols="70" class="custom_txtarea ng-pristine ng-valid charlength" placeholder="Achievements"></textarea>
JS:
$(".charlength").keypress(function (event) {
if (event.which >= 32 || event.which == 13) {
var maxLength = event.currentTarget.maxLength;
var length = event.currentTarget.value.length;
if (length >= maxLength) {
event.preventDefault();
}
}
});
另一个(更简单的)解决方案可能是这样的:
<input type="text" onKeyDown="if(this.value.length==8) this.value = this.value.slice(0, -1);">
您可以使用以下代码处理键入和粘贴
HTML:
`onpaste="limitInput(this, 150)" onKeyup="limitInput(this, 150)"`
JavaScript:
`function limitInput(element, maxValue) {
setTimeout(function() {
if (element.value.length > maxValue) {
element.value = element.value.slice(0, maxValue);
}
}, 100);
}`
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Phonegap-输入类型的电子邮件maxlength不起作用
- 如果输入类型=数字,则maxlength=5不起作用
- maxlength在ckeditor angularjs指令的文本区域中不起作用
- 如果值是从js代码中设置的,则maxlength不起作用
- maxlength属性在IE中不起作用