【问题标题】:Can't create checkboxradio on element.nodeName=input and element.type=text无法在 element.nodeName=input 和 element.type=text 上创建 checkboxradio
【发布时间】:2016-11-12 06:22:37
【问题描述】:

我有以下 html,当我预览页面时,我收到以下错误:

无法在 element.nodeName=input 上创建 checkboxradio 和 element.type=文本

<head runat="server">
    <title></title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
        $(function () {
            $("input").checkboxradio();
        });
    </script>
</head>
<body>
    <form action="#">
        <label for="cbxForRent">For Rent</label>
        <input type="checkbox" id="cbxForRent" />
        <input type="text" id="txtZipCode" />
    </form>
</body>

如果我删除

<input type="text" id="txtZipCode" />

它将正常工作。我认为 jquery 试图用textbox 做点什么。

解决此问题的最佳方法是什么?

【问题讨论】:

    标签: javascript jquery html jquery-ui


    【解决方案1】:

    jQuery UI checkboxradio 插件仅适用于带有标签的复选框,不适用于文本输入,并且$('input') 针对两个标签,请确保您仅针对复选框,并且 jQuery UI 将不再抛出错误尝试将文本输入转换为单选按钮

    $(function () {
        $("#cbxForRent").checkboxradio();
    });
    

    您还可以使用

    来定位页面上的所有复选框
    $('input[type="checkbox"]')
    

    或者给他们一个通用的类来定位他们等等。

    【讨论】:

    • 所以我必须对所有复选框都这样做?我可以为我的复选框添加一个类并仅应用于该类吗?
    • @FLICKER - 你可以随心所欲地定位它们,比如$('input[type="checkbox"]'),或者给你想要转换一个通用类的元素。我只是使用了一个 ID,这就是你所拥有的,重要的是不要针对所有输入,因为这包括不是复选框的输入
    • 您在回答中提供的解决方案有效,但评论中看起来更好的解决方案无效。我试过 $(input[type = "checkbox"]).checkboxradio();
    • 应该可以正常工作,但好像我忘记了引号,我现在添加了它们
    • 还是老待机$('input:checkbox')....
    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2019-10-28
    • 2011-12-24
    • 2018-09-29
    相关资源
    最近更新 更多