Jquery 检查textbox是否有值,然后禁用表单元素

Jquery 检查textbox是否有值,然后禁用表单元素,jquery,Jquery,如果我的文本框中有文本,我想禁用下拉列表。文本框id为newAccessPoint,下拉列表id为selectAccessPoint jQuery: if ($.trim($('#newAccessPoint').val()).length() != 0) { $('#selectAccessPoint').attr('disabled', 'disabled'); } HTML标记: <table class="data-table"> <tr>

如果我的文本框中有文本,我想禁用下拉列表。文本框id为newAccessPoint,下拉列表id为selectAccessPoint

jQuery:

if ($.trim($('#newAccessPoint').val()).length() != 0) {
    $('#selectAccessPoint').attr('disabled', 'disabled');
}
HTML标记:

<table class="data-table">
    <tr>
        <td><label for ="AccessPoint" class="xl">Access Point:</label></td>
            <td><%= Html.DropDownListFor(x => x.AccessPointsList.Id, Model.AccessPointsList.AccessPoints.OrderByDescending(x => x.Value.AsDecimal()), new { @id = "selectAccessPoint", @class = "info1"})%></td>
    </tr>
    <tr>
        <td><label for ="AccessPoint" class="xl">Or Add New:</label></td>
        <td><%= Html.TextBoxFor(x => x.AccessPointsList.AccessPoint, new { @id = "newAccessPoint", @class = "location info2 xl", maxlength = "250" }) %></td>
    </tr>
请使用正确的方法和方法尝试此操作:


问题是你有长度。是一个属性,而不是一个对象。你只需要使用长度

根据您使用的jQuery版本,您将希望使用而不是attr:

根据评论编辑:

下面是一个在textbox输入中使用的示例,它在textbox包含内容时禁用select元素,然后在清除它时重新启用它。

您需要的是事件处理程序:

<input type="text" id="newAccessPoint">
<select id="selectAccessPoint">
    <option>test</option>
</select>

它是。长度不是。当我设置它只是为了寻找一个按键时,lengthwell attr工作过,但我想我会把它改成道具。但是,在我的文本框中键入并不会禁用我的下拉列表,即使使用长度作为属性也是有效的,因为您正在更改属性,但是引入了prop是为了适应布尔属性。disabled是一个布尔属性。你在哪里调用if语句?您需要在用户输入时使用$'myContainer'触发它。在'input','myTextbox',函数{…};页面上应该只有一个newAccessPoint和一个selectAccessPoint。这段代码将只检查唯一ID为newAccessPoint的文本框的长度,并从中仅禁用唯一ID为selectAccessPoint的select元素。哦,对了。我错过了上面写着“输入”、“新访问点”的部分。嗯。非常感谢你!在这种情况下,您应该能够使用live。我已经有一段时间没有使用它了,但我相信它应该是$'newAccessPoint'。live'input',函数{…};对不起,这似乎仍然不起作用,我无法想象为什么。就像我在那里对詹姆斯说的,我可以用按键禁用它,但目前还不能通过检查长度来禁用它…@Jared:你能在你的问题中发布HTML和相关的js代码吗?那会有帮助的。可能会在JSFIDLE.net上发布一个函数示例来说明您的问题。我已经添加了HTML代码,它定义了我试图操作的表单控件。我发布的JQuery代码是唯一与此相关的js代码。啊,非常酷。非常感谢。但是詹姆斯的方法有更多的功能。
if ($.trim($('#newAccessPoint').val()).length != 0) {
    $('#selectAccessPoint').attr('disabled', 'disabled');
}
if ($.trim($('#newAccessPoint').val()).length != 0) {
    $('#selectAccessPoint').prop('disabled', true);
}
<input type="text" id="newAccessPoint">
<select id="selectAccessPoint">
    <option>test</option>
</select>
$('#newAccessPoint').blur(function() { if($('#newAccessPoint').val().length > 0) { $('#selectAccessPoint').attr('disabled', 'disabled'); } });