数据表格中加载的下拉框选中后点击外面会被还原到默认选中怎么解决

提问 已结 19 521
怂包包
怂包包 2019-5-23
悬赏:50飞吻
版本:layui 2.4.5 浏览器:谷歌
渲染块
table.render({
elem: '#test',
data: [{}]
, height: 400
, cols: [[
{ type: 'radio' }
, {
field: 'Name', title: '名称', align: 'center', width: 200, templet: function () {
var html = "";
$.ajax({
url: "/Dictionary/GetDictionarySelect",
data: { "Subordinate": "隧道简表" },
type: "get",
dataType: "json",
contentType: "application/json",
async: false,
success: function (rs) {
debugger
html += '<select name="Names" lay-filter="aihao" lay-verify="required" data-value="" lay-search>\n';
for (var i = 0; i < rs.length; i++) {
html += ' <option value="' + rs[i].Value + '">' + rs[i].Name + '</option>\n';
}
html += ' </select>';
}
});
return html;
}
}
, {
field: 'Where', title: '条件', align: 'center', width: 200, templet: function (d) {
return '<select name="Wheres" lay-filter="aihao" lay-verify="required" data-value="" >\n' +
' <option value="and">与</option>\n' +
' <option value=">">大于</option>\n' +
' <option value="<">小于</option>\n' +
' <option value="=">等于</option>\n' +
' <option value="or">或</option>\n' +
' <option value="in">包含于</option>\n' +
' </select>';
}
}
, { field: 'Value', title: '值', align: 'center', width: 200 }
]]
});
效果图:

随便选中一个
当我随便点击任意地方的时候,选中的项会变成默认选中
回帖
  • 另外一个就是要检查rs[i].Value是否是有值且互斥的,可以简单debugger或者直接看最终的节点中的select内部的节点的情况看看option是否有值相同的,如果option相同也会出现异常,不过一般来说在点选的时候就已经会有问题了,而不是等到选完了点击其他地方会跳变,所以这个可能性不大。不过目前你给出来的信息也无法确定。
    0 回复
  • 加一个空的option value=""
    如果option 的value都有值得话,即使不设置选中,也会默认选中第一个

    <select name="interest" lay-filter="aihao">
    <option value=""></option>
    <option value="0">写作</option>
    <option value="1">阅读</option>
    <option value="2">游戏</option>
    <option value="3">音乐</option>
    <option value="4">旅行</option>
    </select>
    1 回复
  • 怂包包
    2019-5-23
    [囧] 神马鬼啊,有到老告知么
    0 回复
  • 怂包包
    2019-5-23
    0 回复
  • 怂包包
    2019-5-23
    这前面这个下拉框的用ajax调后台拿到的数据
    0 回复
  • 怂包包
    2019-5-23
    @flyer373 我试试
    0 回复
  • 怂包包
    2019-5-23
    @flyer373 无效,当我点击任意地方,他会选中ajax调到的数据的第一个数据
    0 回复
  • 这个一般需要两个搭配起来用:
    第一、在生成这个select的时候,option要根据当前行的这个字段的值是多少,跟当前option的value是否匹配,匹配就加上selected属性。参考:

    第二、select change的时候要记得把值同步到table.cache中。参考:

    https://sun_zoro.gitee.io/layuitableplug/testTableCheckboxDisabled
    0 回复
  • 怂包包
    2019-5-23
    @岁月小偷 [汗] table.cache是啥
    0 回复
  • @怂包包 render过的表格实例当前页的数据缓存
    0 回复