Jquery 如果输入(类型=文本)有值,则启用select元素

Jquery 如果输入(类型=文本)有值,则启用select元素,jquery,Jquery,我有一张桌子,有许多行。例如,其中一行(所有行都相同): //选择权 默认情况下,“选择元素”处于禁用状态。 如何判断,输入值是否有价值?对于启用此行中的select元素如果“输入”是指select以外的任何类型的输入元素,则: $("tr input, tr textarea").change(function() { var $select = $(this).closest("tr") .find("td > select

我有一张桌子,有许多行。例如,其中一行(所有行都相同):


//选择权
默认情况下,“选择元素”处于禁用状态。
如何判断,输入值是否有价值?对于启用此行中的select元素

如果“输入”是指select以外的任何类型的输入元素,则:

$("tr input, tr textarea").change(function() {
    var $select = $(this).closest("tr")
                         .find("td > select");
    $select.attr("disabled", !($.trim(this.value).length > 0));
});

// IE and checkbox change events don't like each other
$("tr :checkbox").click(function() {
    $(this).closest("tr").find("td > select")
                         .attr("disabled", !$(this).is(":checked"));
});

如果只引用文本框,只需将选择器更改为
$(“tr输入:text”)

即可使用
$(…).val()检索值,但这还不足以解决问题。您需要知道为
输入什么。由于这些
元素可能是动态生成的,因此您可能希望根据某种事件(即输入框的更改事件)来执行此操作,或者如果它们是由服务器生成的,则为它们提供与该行中其他元素相对应的ID,以使您的操作更轻松

$('tr:has(td input[value!=""])')
(或接近于此)


[value!=”“]应该匹配所有非空值属性。

哦,我喜欢这个,这是一个很好的答案。+1但您忘记了在清除输入框后再次禁用它的else;-)
input[value]
本身就足以匹配非空值。我用于动态添加的行$(“tr input:text”).live('change',function(){/});
$('tr:has(td input[value!=""])')