今天发现一个问题,在ios下input文本框的maxlength属性有点小bug
当文本框达到最大长度时,光标在末尾确实不能再输入,但是把ios的光标定标到文本框中间时依然可以继续输入字符
临时解决方案,监听input的keydown事件,判断如果当前值长度大于最大长度,则return false用于阻止默认事件,这样大于最大长度的值便输不进去了
<input type="tel" maxlength="11" id="UserId" placeholder="手机号">
$("#UserId").on("keydown",function(e){
var maxlen = $(this).attr("maxlength");
if(maxlen && $(this).val().length > maxlen){
return false; // stopDefault(e); 或者用下面的方法来阻止默认事件,也是可行的
}
});
1.阻止事件冒泡,使成为捕获型事件触发机制.
1
2
3
4
5
6
7
8
9
|
function stopBubble(e) {
//如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation )
//因此它支持W3C的stopPropagation()方法
e.stopPropagation();
else //否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true ;
} |
2.当按键后,不希望按键继续传递给如HTML文本框对象时,可以取消返回值.即停止默认事件默认行为.
1
2
3
4
5
6
7
8
9
10
|
//阻止浏览器的默认行为 function stopDefault( e ) {
//阻止默认浏览器动作(W3C)
if ( e && e.preventDefault )
e.preventDefault();
//IE中阻止函数器默认动作的方式
else
window.event.returnValue = false ;
return false ;
} |
相关推荐
- 除了使用代理方法,还可以监听`UIKeyboardWillChangeFrameNotification`通知,当用户输入时更新文本长度。 - 这种方法可能需要额外的处理,因为它不仅会在用户输入时触发,还会在键盘弹出和隐藏时触发。 4. **...
这一功能允许文本在达到最大显示长度后自动缩小字号,以便尽可能多地展示内容,同时动态记录剩余的可输入字符数,以便用户了解他们还能输入多少文字。 实现这个功能的关键在于监听EditText的文本变化事件,通常是...
当用户在一个文本框内输入字符达到设定的最大长度后,通常希望自动跳转到下一个文本框继续输入。这种功能可以提高用户体验,避免用户手动切换输入焦点,尤其是在填写大量数据的表单时更为实用。 ### 关键技术实现 ...
在这个例子中,`maxLength`是你的自定义变量,用来设定允许的最大输入长度。当用户尝试输入的字符会使得文本字段的总长度超过这个限制时,代理方法会返回`false`,阻止输入。其他情况,代理方法返回`true`,允许输入...
alert('已达到最大输入长度!'); } }); ``` 在这个示例中,当用户输入时,我们检查当前输入的字符数是否超过了`maxlength`。如果超过,我们会截取到最大长度的文本,并弹出警告提示用户。 此外,我们还可以添加...
以下是一个简单的JavaScript示例,它创建了一个自定义的`maxlength`功能,包括实时显示剩余字符数和阻止超出最大长度的输入: ```javascript // 获取输入元素 var input = document.getElementById('myInput'); var...
除了基本的输入验证,还可以考虑增强用户体验,如显示实时提示(如输入超出长度时显示警告)、禁用非数字键的键盘按键等。对于触摸设备,可以禁用触摸键盘上的非数字字符。 5. **数据验证** 在用户提交数据时,还...
为了提高用户体验,还可以在达到最大长度时给出友好的提示,而不是简单地阻止输入。以上就是关于“UITextField现在输入字符长度”问题的详细解释,以及如何避免描述中提到的bug。通过正确的字符长度控制,可以确保`...
有时候,我们可能需要对用户输入的字符数量进行限制,比如信用卡号、密码输入等场景,这时就需要设置`EditText`的最大输入字符数。不同于字节长度或字节数,这里的“字符”通常指的是用户肉眼可见的字符,包括英文、...
// 如果输入后长度超过最大值,截取最大值部分 return dest.subSequence(dstart, dstart + maxLength - dest.length()); } else if (length ) { // 如果输入后长度小于最小值,不进行过滤,允许输入 return ...
这样,当你导入这个分类到你的项目中,就可以像这样轻松地为任何 `UITextField` 设置最大长度: ```objc UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 30)]; myTextField...
1. **输入格式校验**:除了字数限制,还可以结合正则表达式检查输入格式,如禁止输入特殊字符或邮箱地址等。 2. **实时反馈**:可以使用CSS添加样式变化,如当达到字数限制的90%时,高亮提示用户。 3. **多语言支持*...
这段代码首先获取当前文本字段的最长允许长度(这里设为10),然后计算用户新输入后文本的总长度。如果新长度超过最大值,就返回`false`,阻止输入;否则返回`true`,允许输入。 对于UITextView,虽然没有直接的`...
3. **文本长度限制**:通过`maxLength`属性限制输入的字符数,当达到预设值时阻止进一步输入。 4. **显示与关闭**:集成到项目中后,可以通过实例化`LSXInputAlertView`并调用其`show`方法来显示AlertView,通过关闭...
可操作的最大长度插件限制Handsontable插件的任何单元格的最大长度。 关于Handsontable版本0.19.0的最新测试。用法: new Handsontable ( container , {( ... )cells : function ( row , col , prop ) { this . ...
counter.textContent = '还可以输入 ' + (maxLength - currentLength) + ' 个字符'; // 如果超过最大字数,可以添加额外的处理,比如禁用提交按钮或显示错误信息 if (currentLength > maxLength) { alert('已...
否则允许继续输入。 ##### 2. 代码解析 ```javascript function limitLength(obj_id) { var value = document.getElementById(obj_id).value; var length = value.length; if (event.keyCode != 32) { event....
这段代码中,`maxLength` 是设定的最大字符数,当用户尝试输入的文字超过这个长度时,方法会返回 `false`,阻止输入。如果输入的文字长度在允许范围内,则返回 `true`,允许输入。 此外,虽然标签中提到了“插件”...