隐藏与空textareas相关的按钮(选择问题)

时间:2014-02-04 14:09:55

标签: javascript jquery html css jquery-selectors

我正在努力选择jQuery:我有一个包含这些列的表(或多或少)

  • 名称(输入字段)
  • 姓氏(输入字段)
  • 注意(textarea)
  • 按钮(提交相关注释的按钮)

我想隐藏所有textarea为空的按钮(以避免提交)。这是表格:

enter image description here

单行的DOM结构非常简单(我认为):

enter image description here

所以,我想选择类似“td中包含的所有按钮,这是td的兄弟,其中包含空文本区域”... anf anf ...我可以使用单个jQuery选择或不?先感谢您。

5 个答案:

答案 0 :(得分:4)

当然!

$("tr td textarea").each(function() {
    if (this.value == "") {
        $(this).closest("td").next("td").find("button").prop("disabled", true);
    }
});

答案 1 :(得分:3)

您可以使用下一个选择器隐藏onLoad上的按钮:

$('textarea:empty').parent().next('td').find('button').hide();

或者如果要禁用按钮:

$('textarea:empty').parent().next('td').find('button').prop("disabled", true);

检查用户是否在页面上的textarea中键入了某些内容并启用或不启用该按钮会很有用:

 $( $('textarea') ).blur(function() {
    var button = $(this).parent().next('td').find('button');
    if($(this).val() === ''){
       button.prop("disabled", true);
    }else{
       button.prop("disabled", false);
    }
 });

你可以用你的桌子检查这个小提琴: http://jsfiddle.net/6B9XA/4/

答案 2 :(得分:1)

试试这个

$('table textarea').change(function()
{
    var thisval=$.trim($(this).html())
    if(thisval=='')
    {
      $(this).parent().next().children('button').attr('disabled')
    }
})

答案 3 :(得分:1)

我认为你应该这样使用它:

$("#yourtableid").find("textarea").each(function() {
    if (this.value == "") {
       $(this).closest("tr").find("button").prop("disabled", true);
    }
});

"#yourtableid"这应该更改为您的表格ID。

Selectors optimization for performance boost.

答案 4 :(得分:1)

您可以使用filter()仅获取该行中包含空文本区域的按钮

$('tr button').filter(function(){ // get all buttons
   return $(this).closest('tr').find('textarea').val() == ''; // only return those that are empty
}).prop('disabled',true); // disable the buttons