0

だから私はフォームを持つモーダルを持っています。フォームには 2 つのラジオ ボタンがあります。

ここに画像の説明を入力

これにより、ユーザーがモーダル内をクリックするとモーダルが閉じなくなります。

$(".modal-content").click(function(e){
    return false;
});

ただし、これにより (FF で) ラジオ ボタンが選択されなくなり、Google/ Fiddleでは一度選択できますが、再度選択することはできません。

誰もこれを回避する方法を知っていますか?

私はこれを試しました:

$("input:radio").click(function(e){
    return true;
});

しかし、うまくいきませんでした。

ここにいくつかのコードとフィドルがあります:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        // Prevents the modal from closing if the user clicks inside the white box
        $(".modal-content").click(function(e){
            return false;
        });
        $("input:radio").click(function(e){
            console.log("working");
            return true;
        });
    });
</script>

Normal Buttons <br/>
<input type="radio" name="test"><span>Yes</span>
<input type="radio" name="test"><span>No</span><br/><br/>

Return false buttons:<br/>
<div style="border: 1px black solid;" class="modal-content">
    <input type="radio" name="loan"><span>Yes</span>
    <input type="radio" name="loan"><span>No</span>
    <br/><br/>
</div>
4

2 に答える 2

2

伝播を停止する必要があります。そうしないと、機能しなくなります。

$("input:radio").click(function(e){
    e.stopPropagation();
});
于 2013-05-23T16:33:35.903 に答える
0

申し訳ありませんが、答えを見つけました。stopPropagation(); を使用する必要があります。false を返す代わりに、次のようにします。

$(".modal-content").click(function(e){
    e.stopPropagation();
    //return false;
});
于 2013-05-23T16:29:35.413 に答える