TML中input文本输入框在某些情况下禁止或者限制部分操作是很有必要的,下面为大家分享一下如何在input文本输入框添加限制条件,验证内容是否选中或者内容编辑等,此方法仅供才考。
以图片形式方便大家手机端阅读:
图片形式
以文字形式方便大家在PC端验证:
1、选中去除文本框文字,离开后显示原有文字:
<input name="key" type="text" id="key" value="关键词" size="30"
onmouseover=this.focus();this.select();
onclick="if(value==defaultValue){value='';this.style.color='#000'}"
onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999" />
2、选中后方可编辑:
<input type="checkbox" name="tpbox" value="1" onclick="if(this.checked) {txtNo.disabled=false}else{txtNo.disabled=true}">你一定要幸福,我会好好的!
你的姓名:<input type="text" name="txtNo" size="20" value="选中前面的选项方可编辑" disabled>
3、点击链接后方可编辑:
<a href="#" onclick="username.readOnly=false;alert('你好,欢迎使用!')">先点击我哦!</a>
你的姓名:<input id="username" value="--请输入--" size="30" readOnly>
4、输入框从中间输入:从中间输入:
<input type="text" name="mid"style="text-align:center;">
5、输入框变色:输入框改变变色:
<input type="text" size="20" style="background-color:#FFFFFF"
onfocus="style.backgroundColor='#FFFF00'"
onblur="style.backgroundColor='#FFFFFF'">
6、输入框只能输入数字(用的是正则表达式):你的年龄:
<input onkeyup="value=value.replace(/[^\d]/g,'') "
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
7、输入框只能输入中文(用的是正则表达式):你的中文名:
<input onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)event.keyCode=9">
8、只能输入英文和数字(用的是正则表达式):
你 的昵称:<input onkeyup="value=value.replace(/[\W]/g,'') "
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
onkeydown="if(event.keyCode==13)event.keyCode=9">
9、输入框不能编辑,但表单可以获得输入框内的值:
<input type="text" value="afreon" onclick="alert('总和不能编辑!');" onfocus="this.blur()" />
<input type="text" value="afreon" onclick="alert(this.value);" readonly />
<input value="不可修改" readonly= "true" type="text"/>//:字体颜色为黑体
10、输入框不能编辑,并且表单不能获得输入框内的值
<input value="不可修改" disabled="disabled" type="text"/>//:字体颜色为灰体
11、输入框禁止输入法:
<input onpaste="return false" style="ime-mode:disabled">
制 input 输入框只能输入纯数字
1、onkeyup = "value=value.replace(/[^\d]/g,'')"
使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母
2、onchange = "value=value.replace(/[^\d]/g,'')"
使用 onchange 事件,在输入内容后,只有 input 丧失焦点时才会得到结果,并不能在输入时就做出响应
3、oninput = "value=value.replace(/[^\d]/g,'')"
使用 oninput 事件,完美的解决了以上两种问题,测试暂时还没有出现其它问题。
代码示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>input</title> </head> <body> 只能输入纯数字的输入框: <input type="text" name="" οninput="value=value.replace(/[^\d]/g,'')"> </body> </html>
以上代码均已在谷歌、火狐、百度、UC、IE11、360急速、QQ、Edge浏览器下测试完毕,请放心使用.
————————————————
版权声明:本文为CSDN博主「此去几何」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w6990548/article/details/79388905
<input name="fee" type="text" onkeyup="validates(this)">
<script type="text/javascript">
function validate(obj) {
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."
obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两位小数
}
</script>
*请认真填写需求信息,我们会在24小时内与您取得联系。