zoukankan      html  css  js  c++  java
  • 如何用jstl的select标签做二级联动下拉列表框??

    下拉列表框的多级联动早就会了。但是用jstl的select标签做下拉列表框的做二级联动的时候还是遇到了些问题。主要问题在用Ajax查询到的数据如何拼成下拉选项的时候。其实很简单,但我还是折腾了好久。所以这里做下笔记,以免哪天忘了。

    注意:我的前缀:prefix="form"

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

    ----------------------------------------------------------------------------

    遇到的问题一:当JQuery中出现“<form:option”这段字符串的时候就会出问题。

    先上两张图,说明<form:option>标签是可以用作<form:select>的子标签的。

    -----------------------------------------------------------------------------

    以上两张图说明<form:option>标签是可以用作<form:select>的子标签的。

    但是,当我在JQuery中拼接<form:option>标签的时候出现了错误。

    复制代码
                   var baseInfoId = list[i].id;
                            var baseInfoName = list[i].name;
                            
                            var $option = $("<form:option value='" + baseInfoId + "' >" + baseInfoName + "</form:option>");
                            
                            $option.appendTo($attendance_emp);
    复制代码

    运行出现的错误

    -

    意思是:option标签只能用在合理的select标签内。。。。这样理解对吗??反正我是这么理解的。。。。。

    搞来搞去发现,,,在上面一开始的时候我就试过了<form:option>标签明明是可以用在<form:select>标签内的呀??为什么我在JQuery里面拼接用函数生成一个<form:option>选项的时候就错呢???鼓捣了半天。。。最后觉得应该是“<form:option”这个字符串在JQuery代码中导致出现的问题。。。。。然后就把这个字符串拆了。。。。如下:

    复制代码
                            var baseInfoId = list[i].id;
                            var baseInfoName = list[i].name;
                            
                            var $option = $("<form"+":" + "option value='" + baseInfoId + "' >" + baseInfoName + "</" + "form" + ":" + "option>");
                            
                            $option.appendTo($attendance_emp);
    复制代码

    这下终于不报错了。

    但是,高兴的太早。。。。。

    拼接的下拉选项呢??????????

    这里我又折腾了好久,感觉明明自己是对的但却结果很让人失望。。。。。。把自己其他的地方的代码都怀疑了一遍。

    最后确定了,问题就出在下面这行代码上。可是我创造出来的var $option明明是对的呀????为什么就不能appendTo 呢???

    $option.appendTo($attendance_emp);

    唉,最后还是没有解决这个问题。。。。。

    问题总是要解决的。。没办法。<form:option>标签改成<option>标签。这下就可以添加了下面是正确的代码。。。。

                            var baseInfoId = list[i].id;
                            var baseInfoName = list[i].name;
                            
                            var $option = $("<option value='" + baseInfoId + "' >" + baseInfoName + "</option>");
                            $option.appendTo($attendance_emp);

    其实,一开始就想把<form:option>标签改成<option>标签的,但是认为<form:select>标签下的<option>标签怎么能没有form前缀呢??。。然后就把想法搁置了。浪费了好多时间。

    但是还是有收获的,过程中学会了好多JQuery函数。

  • 相关阅读:
    MSRA-TD5000数据集使用详解
    2017CS231n学习笔记——计算机视觉的概述
    函数式非凡的抽象能力
    或许是领域建模的真相
    SpringBoot+ActiveMq实现订阅模式(Topic)消息队列
    SpringBoot下Activemq自定义MessageConverter
    spring boot 2.0类找不到EmbeddedServletContainerInitializedEvent
    Error creating bean with name 'org.apache.cxf.spring.boot.autoconfigure.CxfAutoConfiguration
    Intellij IDEA使用 lambda表达式报错-source1.5中不支持lambda表达式
    SpringBoot--实战开发--commons-lang3(三十五)
  • 原文地址:https://www.cnblogs.com/GooPolaris/p/7920405.html
Copyright © 2011-2022 走看看