使用jquery禁用select元素

时间:2014-09-09 08:24:18

标签: javascript jquery

我有一个函数,只需使用以下代码行

即可禁用所有select个元素
$('select').prop('disabled', true);

然而,它适用于DOM中已存在的所有选择元素。有几个地方使用javascript / jquery添加select个元素。上面的代码行不会禁用这些元素。一种解决方法是每次将select个元素添加到DOM时调用该特定插件,但这将需要大量的工作和需求。

是否有更好的方法可以停用所有这些选择元素?

3 个答案:

答案 0 :(得分:0)

你可以试试somoething这样:

$('body').on('DOMNodeInserted', 'select', function () {
    $(this).prop('disabled', true);
});

编辑:似乎不推荐使用 DOMNodeInserted 。因此,您应该使用 MutationObserver

如果您需要IE9 / 10支持,可以查看 Polyfill

答案 1 :(得分:0)

<a id="myBtn" href="#">Insert select</a>


<script src="/Scripts/jquery-1.8.2.min.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script>
    $(function() {        

        $("#myBtn").click(function() {
            $("body").prepend("<select></select>");
        }); 


        $(document).on('DOMNodeInserted', function(e) {
            if (e.target.tagName === "SELECT") {
                console.log("doing stuff!");
            } 
        }); 


    }); 

</script>

答案 2 :(得分:0)

你需要这个

$(document).on('DOMSubtreeModified', 'select', function () {
    $(this).prop('disabled', true);
});