2014-04-30 75 views
0

我无法使用父()或兄弟或find()或子或其他任何东西来查找提交按钮。我有很多分部(用于环路)具有相同的结构[每个部门有一个dymanic名称]jQuery查找提交按钮

这是我的代码:

的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

更新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> 
+2

如果您向我们展示了正在生成的实际HTML输出,那将会更好。 – adeneo

+0

是的,如@adeneo所述,也请发布生成的HTML。 – Fizzix

+0

你可以为我们创建一个jsFiddle吗? – Fizzix

回答

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类中。

+0

是的,我最终使用了.closest('form') – nevermind