2

ラベルをクリックするとボタンのクリックも発生するため、ボタン内のラベルに問題があります。

それで、私は次々に2つの解雇されたイベントを受け取りましたが、もちろん私は望んでいません。

ラベルが含まれている私のボタンは次のようになります。

<button id="b" name="Button" class="btn btn-primary btn-large">
    <label id="b_button_label" class="fontf">
        Click me
    </label>
</button>

二重発火を防ぐために、おそらくjqueryを使用した迅速な解決策はありますか?

4

3 に答える 3

4

はい、解決策はボタンの中にラベルを貼らないことです。

ラベルは、コントロール自体を説明するためのものであり、コントロールのラベルをクリックすると、コントロール自体をクリックしたように機能します。

仕様から:

ラベルは、ユーザーインターフェイスのキャプションを表します。キャプションは、for属性を使用するか、フォームコントロールをラベル要素自体の中に配置することにより、ラベル要素のラベル付きコントロールと呼ばれる特定のフォームコントロールに関連付けることができます。

于 2012-09-04T22:18:06.143 に答える
1

これは有効なHTMLコードではないと思います。BUTTON内にLABELを追加することはできません。ボタンにテキストを追加する簡単な方法は次のとおりです。

<button id="b" name="Button" class="btn btn-primary btn-large">click me</button>

于 2012-09-04T22:19:03.893 に答える
1

jQueryでstopPropagationイベントを使用して、イベントをバブリングすることができます

$(function() {
    $('#b_button_label').on('click' , function(e) {
       e.stopPropagation();

       // Your code goes here
    });
});​

また、テキストを表示する値フィールドがあるのに、なぜボタン内にラベルを追加したいのですか。

于 2012-09-04T22:21:37.077 に答える