• 页面中使用了layui的日期控件后竟然没办法用jQuery给下拉框绑定初始选定值?
  • 发布于 1个月前
  • 212 热度
    0 评论

问题描述:

最近在开发一个体育管理系统,页面上有比赛开始日期,结束日期,比赛所在省份,城市等信息。UI框架用的是layui。因为要选择比赛日期,所以用到了layui的日期控件laydate,然后省份,城市用的是下拉框。现在出现的问题是用户需要重新编辑已保存的比赛信息,这时需要先把数据库中保存的信息加载到页面显示出来。但我们现在发现,当用了日期控件后,用jQuery绑定下拉框的初识值时,绑定的方法竟然无效。

如下是jQuery绑定下拉框初始值的方法:

// 堆代码 duidaima.com
//==============给下拉框赋选中值===========
function BindSelectedItem(controlID, text, $) {
    var emptyText = $.trim(text);
    if (emptyText != '') {
        var count = $("#" + controlID + " option").length;
        for (var i = 0; i < count; i++) {
            if ($("#" + controlID).get(0).options[i].text == emptyText) {
                $("#" + controlID).get(0).options[i].selected = true;
                break;
            }
        }
    }
}
前端页面调用上面的方法:
$(document).ready(function() {
    BindSelectedItem("ddlProvince", '@Model.TeamInfo.Province', $); //绑定省份
    BindSelectedItem("ddlCity", '@Model.TeamInfo.City', $); //绑定城市
});
上面这个代码,如果是在没有使用layui的日期控件时是没问题的,也就是说可以正常的给下拉框绑定初始值。但是如果在页面中使用了layui的日期控件,则上面的绑定方法会无效。而且好像是只对下拉框无效,如果是在$(document).ready中给文本框控件进行绑定初始值是有效的。试了各种绑定下拉框初始值的方法,不管是直接给下拉框用jquery的val()方法赋值,还是说使用select属性,都无效果,最后没有办法了,只能使用原生js的方法来实现。具体代码如下:
<script>
    document.addEventListener("DOMContentLoaded", function () {
        var gameType = document.getElementById("ddlGameType");
        if (gameType) {
            gameType.value = '@Model.LeagueInfo.GameType'; // 确保元素存在后再设置值
        }
        var province = document.getElementById("ddlProvince");
        if (province) {
            province.value = '@Model.LeagueInfo.Province'; // 确保元素存在后再设置值
        }
        var city = document.getElementById("ddlCity");
        if (city) {
            city.value = '@Model.LeagueInfo.City'; // 确保元素存在后再设置值
        }
    });
</script>
通过上面这个办法,就可以解决在页面中使用layui日期控件无法给下拉框绑定初始值的问题。如果有谁知道为什么在layui中使用了日期控件后,就无法用jquery给下拉框绑定初始值的,欢迎在评论区解答一下,万分感谢!


用户评论