<select>下拉选择框

本文介绍了HTML中的下拉菜单<select>的使用,包括如何创建、添加和删除选项,以及如何实现级联下拉效果。此外,还讨论了textarea的提示列表、表单验证和自定义错误信息,以及表单提交的各种方式,包括无刷新提交和通过Enter键提交。同时,文章提到了页面元素的水平和垂直居中方法。

下拉菜单<select>项,分组:

<select name=”course”>
    <option>课程选择</option>
    <optgroup label=”1.DOM基础”>
        <option value=”1.1”>1.1文档树</option>
        <option value=”1.2”>1.2节点操作</option>
    </optgroup>
</select>

创建选项:<option value=’1.2’>1.2节点操作</option>

var option = Document.createElement(‘option’)

option.value = ‘1.2’;

option.textContent = ‘1.2节点操作’;

或者new Option(‘1.2节点操作’ , ’1.2’);

 

添加选项:

var option = new Option(‘1.0概述’ , ‘1.0’)

opt11.insertAdjacentElement(option,’beforeBegin’)

或者select.add(option , opt11)

 

删除选项:

opt12.parentNode.removeChild(opt12)

或者select.remove(2)

 

select级联下拉选择器

<form name=”course”>
    <select name=”chapter”>
        <option>请选择章目录</option>
    </select>
    <select name=”section”>
        <option>请选择节目录</option>
    </select>
</form>
<script>
    var chapters = [
        {
             text:’1.DOM基础’ , 
             value:’1’
        } , 
        {
             text:’2.事件模型’ , 
             value:’2’
        }
     ]
    var sections = {
        1:[
            {
               text:’1.1文档树’ , 
               value:’1.1’
            } , 
            {
                text:’1.2节点操作’ , 
                value:’1.2’
             }
          ],
        2:[
            {
                text:’2.1事件类型’ , 
                value:’2.1’
             },
             {
                text:’2.2事件模型’,
                value:’2.2’
              }
           ]
      }
    function fillSelect(select,list){
        for(var i=select.length-1;i>0;i--){
             select.remove(i);
         }
        list.forEach(function(data){
            var option = new Option(data.text , data.value);
            select.add(option);
         })
     }
     fillSelect(chapterSelect,chapters);
     chapterSelect.addEventListener(‘change’ , function(event){
         var value = event.target.value,
             list = sections[value] || [];
         fillSelect(sectionSelect , list);
     })
</script>

textarea输入框@提示列表:

textarea.addEventListener(‘input’ , function(event){
    var target = event.target,
    cursor = target.selectionStart;
    if(target.value.charAt(cursor-1)===’@’){
        doShowAtList(function(name){
            var end = cursor + name.length;
            target.setRangeText(name , cursor ,end , ‘end’)
        })
    }
})

input表单验证,自定义错误信息提示

input.addEventListener(‘invalid’ , function(event){
    var target = event.target;
    if(target.validity.valueMissing){
        target.setCustomValidity(‘请输入姓名!’)
    }
})

<form action=”” method=”post” novalidate>禁止可验证表单元素做验证

表单提交,提交按钮,或者用form.submit();触发onsubmit事件,可以做验证, 可以阻止事件的默认行为来取消表单提交

form.addEventListener(‘submit’ , function(event){
    var notValid = false;
    var elements = event.target.elements;
    //验证规则...
    if(notValid){ 
        event.preventDefault();}//阻止事件默认行为,取消提交
})

无刷新表单提交,form.target=”bind” iframe.name=”bind” form-->server-->iframe

<iframe name=”targetFrame” class=”f-hidden”></iframe>
<form action=”” method=”post” target=”targetFrame”>
    <input name=”a” />
    <input name=”b” />
    <button>submit</button>
</form>

按enter键提交---隐式提交

 

水平居中,垂直居中:

<div class=”parent”> 
    <div class=”child”>居中</div>
</div>

1---

.parent{ 
    text-align:center; 
    display:table-cell; 
    vertical-align:middle; 
}
.child{ 
    display:inline-block;
}

2---

.parent{ 
    position:relative;
}
.child{ 
    position:absolute; 
    left:50%; 
    top:50%; 
    transform:translate(-50% , -50%);
}

3---

.parent{ 
    display:flex; 
    justify-content:center; 
    align-items:center;}
在Web前端开发中,表单是用户与网站交互的重要组成部分。它们允许用户输入数据并将其发送到服务器处理。以下是关于表单、`<form>`, `<input>`, 和 `<select>` 下拉列表以及多行文本框在Typora笔记中的简单描述: **表单定义**: ```markdown - 表单(Form):HTML中的`<form>`标签用于创建一个可提交数据的界面。它是用户输入信息的核心区域,常搭配`action`属性指向处理表单数据的服务器端脚本或API。 ``` **`<form>` 元素关键属性**: - `method`:规定数据传输的方式,可能是GET或POST,默认为POST,防止数据暴露在URL中。 - `action`:表单提交后的URL,通常是服务器端处理表单请求的地址。 - `enctype`:编码类型,如`application/x-www-form-urlencoded`(默认)或`multipart/form-data`(文件上传)。 **`<input>` 标签**: - 主要用于获取用户输入,包括: - `type="text"`:普通文本输入 - `type="email"`:电子邮件地址输入 - `type="number"`:数值输入 - `type="date"`:日期选择 - `type="checkbox"` 和 `type="radio"`:复选框和单选按钮 **`<select>` 下拉列表(Dropdown or Dropdown List)**: - `type="select"`:创建一个下拉列表,`<option>` 子标签用于提供选项,用户可以选择其中一个。 - `multiple` 属性:允许多选。 **多行文本框 (`<textarea>`)**: - 提供更大的输入空间,让用户能输入多行文本。 - 通常没有预设的行数限制,但可以设置`rows`和`cols`属性来调整大小。 **Typora笔记示例**: ```markdown - 在Typora中编写表单相关笔记: - 插入`<form>`标签,设置好`method`和`action`属性。 - 使用`<input>`插入不同类型输入控件,如`<input type="text" name="username">`。 - 对于`<select>`,添加`<option>`标签构建选项,如`<select name="country">...</select>`。 - 使用`<textarea>`创建多行文本框,如`<textarea rows="4" cols="50" name="message"></textarea>`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值