无法在element.nodeName = input和element.type = text

时间:2016-11-11 22:11:31

标签: javascript jquery html jquery-ui

我有以下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做一些事情。

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

1 个答案:

答案 0 :(得分:9)

jQuery UI checkboxradio插件适用于仅带标签的复选框,而不是文本输入,$('input')定位两个标签,确保只定位复选框,jQuery UI将不再抛出尝试将文本输入转换为单选按钮时的错误

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

您还可以使用

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

或给他们一个共同的课程来定位他们等。