将动态文本字段设置为一定数量的字符
Setting dynamic text field to a certain number of characters
如何设置填写表单动态文本字段,输入指定数量的字符,不少于也不多于,例如12。
maxlength="12"将数字限制为12,但最多为12。
下面的脚本代码,我会用这种方式保护它。这可以直接在php中完成,而不是在JavaScript中完成,因为你可以关闭它吗?
<script src="js/addInput.js" language="Javascript" type="text/javascript"></script>
<div id="dynamicInput">Serial No<b><font color="#FF0000">*</font></b>
1: <input type="text" name="myInputs[]" maxlength="12" > np 6544/2014-01
</div>
<input type="button" value="Add number" onClick="addInput('dynamicInput');">
kod-pliku-js/addInput.js
var counter = 1;
var limit = 20;
function addInput(divName){
if (counter == limit) {
alert("Add only 20 numbers");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "Serial number<font color='#FF0000'>*</font> " + (counter + 1) + ": <input type='text' maxlength='12' name='myInputs[]'>";
document.getElementById(divName).appendChild(newdiv);
counter++;
}
}
在输入中使用最大长度
<input type="text" name="usrname" maxlength="20">
要将输入限制在12到12之间,请尝试此
<input type='text' pattern=".{12,12}" maxlength="12" name='myInputs[]'/>
关于限制,您应该在php中控制它,类似于:
if( count($_POST['myInputs']) > 20){
//error
}
我认为在浏览器中避免JS是个坏主意,因为有人可以关闭它:
-
- 一个页面会失去很多动态和交互式的东西(我认为现在这毫无意义)
-
- 客户端浏览器可以代替服务器完成所有的脏工作
-
- 即使JS被禁用,用户也可以手动向服务器发送带有错误格式参数的GET请求
-
- 实现良好效果的一种常见做法是使用JS(通过处理用户活动防止错误数据输入)在浏览器中进行响应良好的设计,并在服务器上重新验证一些请求参数(对某些格式非常敏感)
所以在浏览器中尝试一下:
<script>
var input = document.getElementById( 'myFormId' )['exactInput']
, lastCorrectValue = ''
, neededSize = 12
input.addEventListener( 'change', function ( e )
{
if ( e.target.value.length !== neededSize )
{
e.target.value = lastCorrectValue
}
else
{
lastCorrectValue = e.target.value
}
} )
</script>
</body>
当输入失去焦点时,如果新数据的长度错误,它将放弃更改。
'change'
事件在旧的浏览器中可能有缺陷,因此您也可以以相同的方式使用'blur'
事件。
相关文章:
- angularjs删除动态形式元素中的特殊字符
- 动态生成的css背景图像属性中的重音字符
- 字符计数不适用于动态创建的元素
- 如何使用JS在中间输入文本中动态插入字符
- 如何绕过动态锚点标记中的特殊字符
- 使用Date.parse();从动态文本中删除(或允许)序数字符;
- 内部 HTML 剥离动态添加的字符
- 我可以根据换行动态隐藏 html 字符吗?
- 在动态创建的输入上查找字符
- 使用 replace() 丢弃字符串中的动态字符
- 动态向 jQuery 变量添加转义字符
- 将动态文本字段设置为一定数量的字符
- 使用(或不使用)rangy替换动态可编辑的内容字符
- 限制数据列表asp.net 3.5中动态文本框中的字符数
- 使用javascript将一个字符动态替换为另一个字符,而不将页面返回到初始状态
- 如何动态添加javascript正则表达式转义字符
- 动态创建多个文本框取决于最小字符数在以前的文本框/ javascript/asp
- 限制用户在动态生成的文本框中输入特定字符
- 动态扩展输入类型"text"基于输入字段的字符数
- 在iOS上动态限制数字输入中的特殊字符