HTML5表单详解

2021-03-23 14:24

阅读:648

标签:ber   substr   length   ima   BMI   inpu   默认   ida   一个   

input

1、type = “file”时,form标签要添加 enctype = "multipart/form-data"

 

2、含有required时,但是form有novalidate,那么required不会生效

3、含有required时,submit提交按钮含有formnovalidate属性,那么reuired不会生效

 

4、含有autofocus时,刷新页面时自动聚焦到该文本框上

5、含有autocomplete时,会记住之前提交的记录,利与快速填写

6、含有pattern属性时,要符合pattern的正则表达式才能提交。如 pattern = "[abc]$",以abc任意一个字母结尾

 

7、lable中的for,对应input的id值。当鼠标点击lable标签时,焦点就会在对应的input里面。(最佳搭配还是与radio、checkbox)

input type="text" name="" id="text" />  label for="text">一个label,配文本框label>

 

8、限制输入框最大长度:maxlength = "3",限制输入框最小长度:minlength = "2"(效果不明显)。明显效果用:

input type="number" id="bb" oninput="sub(this,5)" />   

 

function sub(obj,length){
    if(obj.value.length>length){
        obj.value = obj.value.substr(0,length);
    }
}

 

9、去除 type="search" 的默认小叉,

input [type="search"]::webkit-search-cancel-button{
    -webkit-appearance:none;    //去除默认小叉
    //若有需要可以自定义自己的小叉图标,如:
    width:15px;
    height:15px;
    background-color:red;
}

 

 

10、type="number"时,保留两位小数用,step="0.01"。(若不设置,提交时自动去除小数点后的数)

11、type="number"时,点击右边的上下键,一次跳5,step="5"。(若不设置,默认跳1)

 

12、去除type="number"的上下键,用:

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{
    -webkit-appearance:none;
    margin:0;
}

 

HTML5约束验证API(validity)

//每一个input都有与之对应的validity对象,如:

input type="text" id="tt" required />

 

console.log(tt.validity);    //有id名的可以直接用id名使用,但兼容性没那么好

 

 

//打印出来的validity,如下:

技术图片

 

//只要input设置了某些属性,与之对应的validity方法就会为true

 

HTML5约束验证API(checkValidity)

//每个input都有checkValidity,只是检查规则随着type的不同而不同

//检查某类型是否符合规则,符合返回true,不符合返回false

input type="email" id="emails" />
if(emails.checkValidity()){
    console.log("符合规则");
}else{
    console.log("不符合规则");
}

 

 

HTML5约束验证API(setCustomvalidity)

//主要是更改input的required的提示信息,如:

form>
    input type="text" pattern="^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required oninput="tishi(this)" />
    input type="submit" />
form>
function tishi(obj){
    if(obj.validity.valueMissing){
        obj.setCustomValidity("这里不能为空空空。。。");
    }else if(obj.validity.patternMismatch){
        obj.setCustomValidity("必须符合邮箱规则则则。。。");
    }else{
        obj.setCustomValidity("");
    }
}

 

HTML5自带验证美化

:required(选择必填项)

input:reqrired{    
    border-right:3px solid red;
}

 

:optional(选择选填项)

textarea:optional{ 
    border-right:3px solid grey;
}

 

去除默认的输入状态边框

input:focus{  
    outline:none;
}

 

自定义输入状态边框

input:required:focus{ 
    box-shadow: 0 0 3px 1px red;
}

 

input:optional:focus{ 
    box-shadow: 0 0 3px 1px grey;
}

:valid(符合输入规则)

form>
    input type="text" pattern="^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required />
    label>label>
    input type="submit" />
form>

 

/* 符合input的xx类型的规则时, */
input:valid~label::after{ /*获取同父级下面的lable*/
    content: "ok符合规则";
}

 

:invalid(不符合输入规则)

form>
    input type="email" required />
    label>label>
    input type="submit" />
form>

 

/* 不符合input的xx类型的规则时, */
input:invalid~label::after{ /*获取同父级下面的lable*/
    content: "暂时不符合规则";
}

修改setCustomValidity的默认气泡

......

 

HTML5表单详解

标签:ber   substr   length   ima   BMI   inpu   默认   ida   一个   

原文地址:https://www.cnblogs.com/mingliangge/p/12682916.html


评论


亲,登录后才可以留言!