2016-08-01 55 views
0

假设你有以下的html文件:jQuery的避免正常的按钮进行选择时:提交

<form class="" ng-submit="CTRL.submit(CTRL.academy)" submit-throbber> 
<div class="modal-body"> 
    <div class="row"> 
     <div class="col-xs-12 b-r" style="margin-top: 10px;"> 
      <div class="form-group"> 
       <label translate="FORMS.NAME"></label> 
       <input class="form-control" placeholder="{{ 'FORMS.NAME_PLACEHOLDER' | translate }}" 
         ng-model="CTRL.academy.name" required=""> 
      </div> 
      <label translate="FORMS.DESCRIPTION"></label> 
      <textarea class="form-control" placeholder="{{ 'FORMS.DESCRIPTION_PLACEHOLDER' | translate }}" 
         ng-model="CTRL.academy.description" 
         style="height: 300px; margin-top: 0px; margin-bottom: 0px;"></textarea> 
     </div> 
    </div> 
</div> 
<div class="lb-modal-footer"> 
    <button class="btn btn-default" tooltip="{{ 'TOOLTIP.CANCEL' | translate }}" ng-click="CTRL.cancel()"><i 
      class="fa fa-ban"></i></button> 
    <button type="submit" class="btn btn-success m-l-xs" tooltip="{{ 'TOOLTIP.SAVE_AND_EXIT' | translate }}"><i 
      class="fa fa-check-square-o"></i></button> 
</div> 

现在,当我使用jQuery找到提交按钮我做的:$('form').find(':submit')

然而,在上述情况下,找出两个结果(我的两个按钮)

这部作品准确地根据documentation

但是有没有办法避免 这个?

+0

_ “这正常工作根据文档” _ - 只有当你_为 “...指定类型属性。”第一个按钮。文档说,总是为按钮指定一个'type'属性以使其始终如一地工作。将'type =“button”'添加到您的第一个不提交按钮。 – War10ck

+0

当然,它会有2个结果,因为它们都是'button',但其中一个属性是'type = submit',你应该过滤它。相似的,如果你想选择'div'元素有很多,但是如果你想要一个特定的'div',你可以给这个元素赋一个'id'或者一些像'name =“target”'这样的唯一值的属性,或者你可以把像':first',':'等伪选择器的帮助,如果这些都适用。 –

回答

1

尝试$('form').find('[type=submit]')

1

当你链接到状态的文档:

始终指定类型属性。

所以只需在取消按钮上添加type="button",你应该很好。

<button type="button" class="btn btn-default" tooltip="{{ 'TOOLTIP.CANCEL' | translate }}" ng-click="CTRL.cancel()"><i 
      class="fa fa-ban"></i></button> 
0

试试这个:

$('form').find("button[type='submit']");