layui select 选完其他选项,删除已选 清空value

提问 已结
29 328
先思考在发问
悬赏:30飞吻
版本:layui 1 浏览器:chrome

把select框中 text 删除后点击按钮触发查询,参数里还是已选的 value,能清空呢?
回帖
  • luoye
    2017-10-12
    @先思考在发问 layui1.0.9就是有这个问题,以前我就是改源码实现让它不清除第一个选项的。后来2.0.0以后就不用改源码了,因为官方源码在那地方已经改过了。
    如果版本不变的话,你就得改源码,就照着layui2.1.5把那地方改一下就可以了

    至于第2个问题
    刚刚测试了下,在layui2.1.5版本里
    如果删除input里面的文字,点击页面其他地方,里面的input文字又会自动回来的,如果要去除value值,就是点击第一个选项。
    如果你执意要用layui1.0.9 ,也有解决的办法,就是添加下面的代码了(对于layui2.1.5也适用)
      $(document).on("input propertychange","select[lay-search] ~ div input",function() {
    console.log($(this).val());
    if ($(this).val()=="") {
    $(this).parent().next().find(".layui-this").removeClass("layui-this");
    }
    });
    总之还是你版本的问题,你可以更新到layui2.1.5 ,功能更强大
    1 回复
  • luoye
    2017-10-12
    是有这个问题
    select只是删除了框里的文字的话,之前选中的选项仍然处于选中状态(class="layui-this")
    如果想清空value值,你需要点击select下拉列表的第一个选项,如下图
    0 回复
  • @luoye 您好, 我的问题 您大概能判断出来,问题还在继续,
    1 现在我循环出来的下拉选项数据中 无 图中你红框圈出来的这个空选项呀?
    2 选完选项后触发查询,用户会用鼠标点击 被选中的选项文字 把选项文字删除后点击查询按钮进行查询,这时候 (class="layui-this")内的value值 还是没用被清空的状态,我需要怎么操作呢?
    0 回复
  • luoye
    2017-10-12
    @先思考在发问
    第1个问题

    你可以添加一个 <option value="">直接选择或搜索选择</option>
    0 回复
  • @luoye 是这样的, 开始我写有一个value=“” 的option选项放在上边,从后台取的数据循环option,可页面 把第一个 空option显示成 类似 placeholder的感脚,而且在点击下拉框选择的时候 没有空选项option, 我在代码里加了2个空value的option,这回点击下拉选项出来一个空option选项了。
    0 回复
  • 0 回复
  • luoye
    2017-10-12
    @先思考在发问 用的版本肯定不是2.1.5的,之前的版本如果第一项value="",就不显示第一项
    layui 2.1.5版本 如果第一项value="",自动渲染后还有第一项的
    你更新一下版本看看
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 用的是1.0.9的版本吗?
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 2.0.0及以后的版本第一个选项value=""都是保留着的
    可以对比一下form.js代码的变化
    layui1.0.9

    layui2.1.5
    0 回复
  • @luoye 这个我还真没太注意引入的layui.js的版本,
    看了一下是 /** layui-v1.0.9_rls MIT License By http://www.layui.com */
    0 回复
  • @luoye 哈哈js不是我引入的我是过来改改东西,如版本不变的话,我就在原处添加了一个空选项好了。

    可问题2 还是没有解决办法,愁人啊~~~
    (选中选项后,把选中文字删除,点击查询,这时候 选中的value值 没有清空)
    0 回复
  • @luoye 我不知道 更新带 layui2.1.5后 对其他地方有无影响或者变化,能告知我一下吗,毕竟我是改代码,不是自己写一套功能
    0 回复
  • @luoye 还有 还有 就是刚刚这个问题2,在后续 layui版本升级的时候会不会把这个问题收纳为bug 出一个解决方案呢,估计不少人会遇到这个类似的问题吧
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 至于更新到layui2.1.5后的 代码变化,你可以看一下layui的更新日志 http://www.layui.com/doc/base/changelog.html
    对于刚刚的问题2,官方其实已经作了解决,就是:
    清空以后,点击其他地方或者点击提交按钮,自动变成之前选中的值。除非你点击了下拉列表的第一个选项。这样这个问题就不算bug了
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 还是建议你更新到最新版本[嘻嘻] ,毕竟最新版本的功能多,而且之前很多bug也会修复的
    0 回复
  • @luoye 嗯我已经把2.1.5下载好,准备切换呢,可用户就是想手动输入一些 下拉列表中没有的数据进行搜索查询,或者主观上直接把选中的文字删除 理解为清空选项了 进行查询全部呢,官方给出的解决办法,是不是有些不太妥当呀
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 一般select是不允许输入下拉列表里没有的数据的。
    如果你想实现那个功能,还是加我之前发那个代码或者再改一改。
    0 回复
  • @luoye 已经改为 2.1.5,真的非常感谢您的帮助,另外我去说服产品经理(不允许用户输入非选项内的文字和删除已经选择的文字)。关于layui的组织架构树 这块 多层级(总公司>>分公司>>1级部门>>2级部门)展现您了解吗?我找了下layui 动态加载这块我没搞明白。
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 是的
    select下拉列表一般都是设定好的
    组织架构树 用layui的树组件
    目前layui的树组件正在更新。相关文档可以参考旧版layui的文档。
    你也可以使用其他的树插件,比如ztree就很不错
    如果你要展现架构树的表格,需要在网上找树表格的插件,也可以自己实现。
    满意就采纳了吧。问题还可以继续问[嘻嘻]
    0 回复
  • @luoye 采纳了,以后会 天天光顾 这个社区网站,还有劳大侠们帮助了。[good] [good] [good]
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 欢迎欢迎
    0 回复
  • @luoye 在文档里没找到 树组件的 导航菜单呀,ztree的几个主题样子看着都不搭呀
    0 回复
  • luoye
    2017-10-12
    @先思考在发问 不知道你要实现什么效果,可以再找找别的插件
    0 回复
  • @luoye 1.0.9更新到 2.1.5之后 laydate 日期这块出现报错,
    我查看了更新日志,去案例那看了下,没有看明白,之前获取当前日期 laydate.now() 这个方法不可以用了吗?
    以下是我的报错信息



    以下是我看layui文档获取当前日期的方法

    0 回复
  • 0 回复
  • @luoye 我的需求是 选择 开始日期 和截止日期 一个日期范围,我看现在改版改成一个文本框 写这2个日期了吗?
    0 回复
  • @luoye 我在本地测试,问题有 两个
    1 我在后台拿回来的 2个日期字符串 赋值 和 获取 在传后台 就需要截取区分 操作了吧。有什么直接办法获取 开始日期,截止日期吗?

    2 可以分为2个日期文本框来操作吗?
    0 回复
  • luoye
    2017-10-12
    @先思考在发问
    1. laydate.now()在 layui2.1.5里面没有了,不清楚后期会不会再加上,可以用js获取当前时间,具体参阅
    http://fly.layui.com/jie/13244/
    2. 日期字符串 赋值 和 获取 在传后台 就需要截取区分操作了,截取区分也很简单
    3. 开始日期和结束日期可以分两个日期文本框操作,参阅 http://fly.layui.com/jie/15121/
    0 回复
  • 前端小五
    2017-10-13
    @luoye 大神,请教个问题,layui select 选完一个option,然后用户又点选了一个新的选项,我这边给出弹框提示,如果用户确认修改下拉框的值,那么不做处理,如果用户取消修改下拉框的值,我怎么才能拿到用户第一次点击的option的值,并且,显示到select上呢?
    0 回复