sadfoo2019 发表于 2021-3-30 17:56

如何控制文本框只能输入11个数字?【JS】

本帖最后由 sadfoo2019 于 2021-4-1 11:55 编辑

如何用JS来控制文本框只能且必须输入11个数字,否则就给提示,下面我有一步其他操作的js了,再这个基础上添加个限制联系电话文本框的代码呢

下面是我的表单

联系电话哪个文本控件的代码如下
<td width="79" style="border-width: 1px; border-style: solid; border-color: black windowtext windowtext black; text-align: center; -ms-word-break: break-all; background-color: transparent;">
                <span style="font-family: 宋体; font-size: 16px;">联系电话<span style="color: rgb(255, 0, 0); font-family: 宋体; font-size: 16px;"><span style="color: red; margin-left: 5px; vertical-align: middle;">*</span></span></span>
            </td>
            <td width="79" style="border-width: 1px; border-style: solid; border-color: black windowtext windowtext black; text-align: center; background-color: transparent;">
                <input name="DATA_92" title="联系电话" align="left" style="width: 110px; height: 26px; text-align: left; font-size: 14px;" maxlength="11" hidden="0"/>
            </td>


这是我现在有的脚本了【下面的脚本是我点了请选择里面的东西自动提取到对应的文本框里】
jQuery(document).ready(function(){

var interval = setInterval(function(){   
   
    jQuery("select").change(function(){
            
          jQuery("textarea").val(jQuery(this).val());
});

    jQuery("select").change(function(){
          jQuery("textarea").val(jQuery(this).val());
});

    jQuery("select").change(function(){
      jQuery("textarea").val(jQuery(this).val());
});

    jQuery("input").change(function(){
    var biaoti1= jQuery("input").val();
    var biaoti2= jQuery("input").val();      
          jQuery("#Symbol",window.parent.document).val(biaoti1+"/"+biaoti2);
});
   
      
       clearInterval(interval);   
},2000)            

});
感谢各位大哥大姐,目前已经解决了,解决方法如下:
jQuery(document).ready(function(){

var interval = setInterval(function(){
// 调用方法:验证手机号必须为11位且填写正确
jQuery("input").blur(function(){
var phone = jQuery("input").val();
if(!isPhoneNo(phone)){
alert('输入的手机号码不正确')
// 下面这句表示填写不正确就清空文本框
jQuery("input").val('');
}
});
clearInterval(interval);
},2000)

// 验证手机号的方法
function isPhoneNo(phone){
var pattern = /^1\d{9}$/;
// 下面这个正则表达式也可以
// var pattern = /^1{9}$/;
return pattern.test(phone);
}

});

troybug 发表于 2021-3-30 18:05

直接为input增加属性maxlength="11"即可,在输入时就能自动限制文本长度

不知道改成啥 发表于 2021-3-30 18:07

非得用js的话就用事件阻拦的方法也可以。

surile 发表于 2021-3-30 18:24

const phone = $("input").val()
if(!/^1{9}$/.test(phone)){
alert("输入的手机号不正确")
return
}

涛之雨 发表于 2021-3-30 18:27

一个是一楼的原生html,
一个是js里监听oninput和onpropertychange(旧版ie),
然后判断长度。

最后提交前最好再用正则表达式test一下是不是手机号
/^((13)|(14)|(15)|(17)|(18)|166|198|199|(147))\\d{8}$/.test(phoneNumber)

后台也应该有判断,防止修改前端

5yrant 发表于 2021-3-30 18:46

正则判断一下就行了

傅粉何郎 发表于 2021-3-30 19:08

牛的呀,看得我一知半解

Clarksh 发表于 2021-3-30 19:23

maxlength ?

diaosi123 发表于 2021-3-30 19:35

正则表达式。。。

SQ-Will 发表于 2021-3-30 21:07

正方的?
页: [1] 2
查看完整版本: 如何控制文本框只能输入11个数字?【JS】