jQuery找到提交按钮

时间:2014-04-30 23:08:04

标签: jquery

我无法使用parent()或siblings或find()或子项或其他任何内容找到提交按钮。我有许多具有相同结构的分区(for循环)[每个分区都有一个动态名称]

这是我的代码:

Javascript部分:

 $('.notempty').keyup(function () { 
    alert($(this).val()); // alerts the value normally

      if ($(this).val().length == 0) {        
        $(this).siblings('.submit').attr('disabled', 'disabled');
      } else {
        $(this).siblings('.submit').removeAttr('disabled');
      }
  });

HAML :(注意名称是变量)

  %div{id: 'status' + name, class: 'modal hide fade padded'}
            %form.form{name: 'form' + name, class: 'form-inline'}
              .form-group
                .col-10
                  %input.form-control{id: 'duration', name: 'duration', class: 'notempty'}
                .col-sm-offset-2.col-sm-10
                  %button.btn.btn-default{type: 'submit', id: 'submit', disabled: 'disabled', class: '.submit'} Submit

当我明确使用$("#submit")时代码有效,但我无法通过多个分区执行此操作,因为它将返回它找到的第一个提交,而不是与该特定表单/ divison相关的提交< / p>

更新源视图中生成的HTML

<!-- popup -->
<div class='modal hide fade padded' id='statusx1'>
  <form class='form form-inline' name='maintenancex1'>
    <div class='form-group'>
      <div class='col-10'>
        <input class='form-control notempty' id='duration' name='duration'>
      </div>
      <div class='col-sm-offset-2 col-sm-10'>
        <button class='.submit btn btn-default' disabled='disabled' id='submit' type='submit'>Submit</button>
      </div>
    </div>
  </form>
</div>

1 个答案:

答案 0 :(得分:1)

你的兄弟姐妹代码也是错误的。在jQuery中,兄弟是一个包含在同一个父元素中的元素,而不是祖父元素。在你的案例中,兄弟姐妹的例子,

<div class='col-10'>
        <input class='form-control notempty' id='duration' name='duration'>
        <div class='i-am-a-sibling-to-notemptydiv>
</div>

<div class='col-10'>
        <input class='form-control' id='duration' name='duration'>
        <div class='i-am-not-a-sibling-to-notempty'></div>
</div>

你想要的是写这样的javascript部分,

      if ($(this).val().length == 0) {        
        $(this).parents().find('.submit').attr('disabled', 'disabled');
      } else {
        $(this).parents().find('.submit').removeAttr('disabled');
      }

另外,如前所述,不要写.submit但是在html类中提交。