HTML5笔记 04:其他标签与表单

其他标签

1. 状态标签

meter

<!-- 
  用来显示已知范围的标量值或者分数值,外观类似进度条
    value:当前的数值
    min:值域的最小边界值,默认为 0
    max:值域的上限边界值,默认为 1
    low:定义了低值区间的上限值
    high:定义了高值区间的下限值
      在二者之间进度条为绿色,剩下部分为黄色(火狐浏览器下)
    optimum:最佳取值
-->
<meter id="meter" value="30" min="20" max="100" low="40" high="80" optimum="90"></meter>
<input id="msg" type="text" value="" />
<button id="add"></button>
<button id="del"></button>
<script>
  var meter = document.getElementById("meter");
  var msg = document.getElementById("msg");
  msg.value = meter.value;
  document.getElementById("add").onclick = function () {
    meter.value += 5;
    msg.value = meter.value;
  };
  document.getElementById("del").onclick = function () {
    meter.value -= 5;
    msg.value = meter.value;
  };
</script>

progress

<!-- 
  用来显示一项任务的完成进度(默认是0 —— 1)
    max:表示这个progress元素所表示的任务一共需要完成多少工作
    value:用来指定进度条已经完成的工作量
-->
<progress id="progress" max="10" value="8"></progress>
<input id="msg" type="text" value="" />
<button id="add"></button>
<button id="del"></button>
<script>
  var progress = document.getElementById("progress");
  var msg = document.getElementById("msg");
  msg.value = progress.value;
  document.getElementById("add").onclick = function () {
    progress.value += 5;
    msg.value = progress.value;
  };
  document.getElementById("del").onclick = function () {
    progress.value -= 5;
    msg.value = progress.value;
  };
</script>

2. 列表标签

datalist

<style>
  /* 指定 placeholder 的颜色 */
  input::-webkit-input-placeholder {
    color: red;
  }
</style>
<!-- 
  包含一组option元素,这些元素表示其表单控件的可选值
    id必须要和input中的list一致
-->
<input type="text" placeholder="你最喜欢的人物是?" list="s">
<datalist id="s">
  <option value="1">费渡</option>
  <option value="2">简隋英</option>
  <option value="3">顾昀</option>
</datalist>

details

<!-- 
  一个UI小组件,用户可以从其中检索附加信息
    open属性用来控制附加信息的显示与隐藏
-->
<details open>
  <summary>大河之剑天上来</summary>
  <p>将进酒 杯莫停</p>
  <p>将进酒 杯莫停</p>
  <p>将进酒 杯莫停</p>
</details>

3. 注释标签

ruby

<span>
  <ruby>
    李白
    <rt>版本弃子</rt>
  </ruby>
</span>

4. 标记标签

mark

<!-- 类似于荧光笔的效果 -->
<span>大河之剑<mark>李白</mark>天上来!</span>

表单

1. 表单格式

<form>
    <!-- 会进行校验,是否符合邮件格式,移动端获取到焦点时会切换到英文键盘 -->
    电子邮件:<input type="email" name="email"><br><br>
    <!-- 移动端获取到焦点时会切换到数字键盘 -->
    电话:<input type="tel" name="tel"><br><br>
    <!-- 会进行校验,是否符合URL格式, -->
    网址:<input type="url" name="url"><br><br>
    <!-- 带有清空按钮 -->
    搜索:<input type="search" name="search"><br><br>
    <!-- 特定范围内的数值选择器,属性有最小值,最大值,步长 -->
    数值选择器:<input type="range" name="range" min="0" max="100" step="10"><br><br>
    <!-- 只能包含数字的输入框,尾端带有上下按钮调节数字的大小 -->
    数字:<input type="number" name="number"><br><br>
    <!-- 颜色选择器 -->
    颜色:<input type="color" name="color"><br><br>
    <!-- 显示完整日期(移动端浏览器支持) -->
    完整日期(移动端):<input type="datetime" name="datetime"><br><br>
    <!-- 显示完整日期(不包含时区) -->
    完整日期:<input type="datetime-local" name="datetimeLocal"><br><br>
    <!-- 显示时间(不包含时区) -->
    时间:<input type="time" name="color"><br><br>
    <!-- 显示日期 -->
    日期:<input type="date" name="color"><br><br>
    <!-- 显示周 -->
    周:<input type="week" name="color"><br><br>
    <!-- 显示月 -->
    月:<input type="month" name="color"><br><br>
    <input type="submit" value="提交">
</form>

2. 表单属性

<form action="https://www.baidu.com/">
    <!-- 
        placeholder:输入框提示信息
            ::-webkit-input-placeholder用来选中placeholder
    -->
    输入框:<input type="text" name="username" placeholder="请输入内容:"><br><br>
    <!-- 自动获取输入焦点 -->
    自动获取焦点的输入框:<input type="text" name="autofocus" autofocus><br><br>
    <!-- 必选填写 -->
    必填的输入框:<input type="text" name="required" required><br><br>
    <!-- 正则校验 -->
    正则校验的输入框:<input type="text" name="pattern" pattern="\d"><br><br>
    <!-- list和datalist -->
    <input type="submit" value="提交">
    <!-- 在submit里指定提交地址 -->
    <input type="submit" value="提交" formaction="https://www.jd.com/">
</form>

3. 表单验证

<form>
    <!-- valueMissing: true -->
    用户名:<input type="text" name="username" required> <br><br>
    <!-- typeMismatch: true -->
    邮箱:<input type="email" name="email"> <br><br>
    <!-- patternMismatch: true -->
    年龄:<input type="text" name="age" pattern="\d{0,3}"> <br><br>
    <!-- tooLong:浏览器会不接受18位以后的输入,无法触发验证失败 -->
    身份证号:<input type="text" name="id" maxlength="18"> <br><br>
    <!-- customError: true -->
    自定义:<input type="text" name="custom"> <br><br>
    <input type="submit" value="提交">
</form>
<script>
var inputs = document.getElementsByTagName("input");
// 验证失败会触发该事件
for (let i = 0; i < inputs.length; i++) {
  inputs[i].addEventListener('invalid', showMsg);
}
inputs[inputs.length - 1].onclick = function () {
  var value = inputs[inputs.length - 2].value;
  // 自定义校验
  if (value === 'dudu') {
    inputs[inputs.length - 2].setCustomValidity(value + '不是正确的值');
  } else {
    // 通过验证
    inputs[inputs.length - 2].setCustomValidity();
  }
}
function showMsg() {
  /* 
    validity对象用来查看验证是否通过,如果八种验证都通过返回true,一种验证失败返回false
      valueMissing:输入值为空时返回true
      typeMismatch:控件值与预期类型不匹配返回true
      patternMismatch:输入值不满足pattern正则表达式返回true
      tooLong:超过maxLength最大限制返回true
      rangeUnderflow:验证的range最小值返回true
      rangeOverflow:验证的range最大值返回true
      stepMismatch:验证range的当前值是否符合min,max以及step的规则返回true
      customError:不符合自定义验证返回true
        setCustomValidity
  */
  console.log(this.validity);
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值