select下拉列表相关

select

属性列表

属性名 属性值 描述
autofocus autofocus 页面加载完成之后,该文本区域自动获得焦点
disabled disabled 禁用该下拉列表
form form_id 规定该文本区域所属的一个 或 多个表单【见下述 举例2】
multiple multiple 表示该下拉列表 可以选择多个选项<ctrl + 左键选择,更推荐使用复选框>
name name 规定下拉列表的名称
required <所有主流浏览器都不支持该属性>
size number 下拉框可见选项的数目 默认是1

举例:

<!-- 下拉框可见选项为2 -->
<select autofocus size=2 miltiple>
    <option>篮球</option>
    <option>足球</option>
    <option>台球</option>
    <option>网球</option>
</select>



<!-- 被禁用 -->
<select disabled>
    <option>11</option>
    <option>2</option>
</select>

效果如图:
image

option

与select标签配合使用,否则是没有意义的

属性列表

属性 描述
disabled 规定此选项应该在首次加载时被禁用
label 与optgroup 标签组合使用,当下拉框选项很多时,进行一次分类
selected 表明默认选择哪一项,如果多个option标签有这个属性,优先后面的
value 定义发送到请求的值

value属性比如某个form表单中,某一项是通过下拉列表选择的,这里选择<option value='1'>张三<option />,form表单该select标签发到服务端对应的数据为 1,而不是张三

举例1:

<select autofocus>
    <optgroup label="球类运动">
        <option disabled>篮球</option>
        <option disabled>足球</option>
        <option>台球</option>
        <option >网球</option>
        <option selected>垒球</option>
        <!-- 多个option 有selected,选后面的 -->
        <option selected>乒乓球</option>
    </optgroup>
    <optgroup label="田径">
        <option>100米</option>
        <option>跳高</option>
        <option>铅球</option>
    </optgroup>
</select>

在浏览器的效果如下:

image

value属性

定义送往服务器的选项值。如果没有显示声明该值,则默认为文本内容

比如: 如果这时候 选择的是科比,去获取id为"demo"的select标签的 val() ,得到的是“科比”,但是如果选择的是詹姆斯,去获取id为"demo"的select标签的 val() ,得到的是“james”

<select id="demo">
    <option>科比</option>
    <option value="james">詹姆斯</option>
</select>

举例2:

<form id="form_id">
    <input type="button" id="test_btn" value="测试一下"/>
</form>
<!-- 这里可以在表单外定义一个下拉框,只要该下拉框的 form属性=对应form表单的id[可以选择多个form] 这个数据还是会和form表单其他数据一同发送  -->
<select autofocus form="form_id" id="my_select">
    <optgroup label="球类运动">
        <option disabled value="1">篮球</option>
        <option disabled value="2">足球</option>
        <option value="3">台球</option>
        <option value="4" >网球</option>
        <option value="5" selected>垒球</option>
        <option value="6" selected>乒乓球</option>
    </optgroup>
    <optgroup label="田径">
        <option value="7">100米</option>
        <option value="8">跳高</option>
        <option value="9">铅球</option>
    </optgroup>
</select>

<script src="D:\study\demo\jquery-1.12.4.js"></script>
<script>
    $(function(){
        $("#test_btn").click(function(){
            // 选择下拉列表之后,传递过去的值是  对应<option>的 value属性的值
            console.log($("#my_select").val());
            // text()是看所有的内容,val()是看的传递的值
            console.log($("#my_select").text());
        })
    })

</script>

效果如下图:

image

关于下拉列表的默认选择问题

需求:比如编辑某个学生信息,是需要先带出该学生的所有信息,比如所属班级,所属班级是一个下拉框,需要默认选择该学生所处的班级

<select id="demo">
    <option>1班</option>
    <option selected>2班</option>
    <option>3班</option>
    <option value="4">4班</option>
</select>

<input type="button" value="切换默认选项" class="button" />

<script src="D:\study\demo\jquery-1.12.4.js"></script>

<script>
    $(function(){
        $(".button").click(function(){
            // 知识点: 通过jquery 修改select标签的value="改的值", 如果该select下的option的value有等于该值的,就默认展示该值
            // 后端返回该学生的所属班级id,这里只需要设置 下拉列表的对应value = 班级id 就可以满足需求
            $("#demo").val("4");
            // 如过要点击按钮就变成3班,由于这个option没有显示的声明value,就需要修改为								$("#demo").val("3班");
        })
        
    })
</script>

实现效果如下:

image
image

posted @ 2021-12-02 15:54  Alantammm  阅读(100)  评论(0编辑  收藏  举报