IDとクラスが同じ2つのボタン、1つだけが機能していることが判明

Aug 24 2020

私はjiraを使用していますが、IDとクラスが同じ2つのボタンがあります。どちらも送信ボタンで、1つは上、もう1つは下にあり、下のjqueryを使用すると、クリックすると最初のボタンのみがキャプチャされます。コメントテストフィールドを必須にすることを目的としています。

一番上のものだけが機能しています。

<script>
AJS.toInit(function () {
   AJS.$("#next").click(function(e){ var comment=AJS.$("#jira #page #content .aui-page-panel .aui-page-panel-inner .aui-page-panel-content #bulkedit .form-body .aui .comment-input #comment").val();
    if(comment==""){
    AJS.$(".bulk-affects").append("<br/><div id='resErrror' style='color:red;margin-left:30px'>Comment is mandatory</div>");
       return false;
       }

   });

   });
</script> 

このスクリプトで機能する次のボタンの両方をキャプチャするのを手伝ってください

回答

2 Anjaneyavarma Aug 24 2020 at 15:38

IDは一意である必要があるため、特定のIDはページで1回だけ使用する必要があります。実際、IDコードを使用して要素を呼び出そうとすると、最初の要素のみが呼び出されます。クラスは繰り返し使用できます

1 Anton Aug 24 2020 at 16:10

querySelectorAll すべてのIDを検索します

const allButtons = document.querySelectorAll('#next');
for (let button of allButtons) {
  $(button).click((e) => {
    // Do your magic here
  })
}
Vinayak Aug 24 2020 at 16:37

注意:ウェブページ要素には、特定の不可侵の権利があります。一意のIDを持つこともその1つです。IDを必要とするWebページ上のすべての要素に一意の要素があることを確認することにより、html要素のIDの盗難を防ぎます。

ただし、クラスは繰り返すことができます。