2017-02-10 14 views
1

jQueryを使用してラジオボタンの選択を解除しようとしていますが、propの問題が発生しています。このコードが実行されると、条件($(e.currentTarget).prop('checked'))は常にtrueに評価されます。ここでラジオボタンの選択を解除できませんか?

は私の問題を示していフィドルです:Jsfiddle

FYI:私はjQueryの1.8.2を使用していますし、それは多くの依存関係を持つレガシープロジェクトですので、私はそれを更新することはできません。また、クライアントの要求ごとにラジオボタンを使用する必要があります。

Javascriptを:

$("input[name=optionMedia]").click(function(e) { 
    if ($(e.currentTarget).prop('checked')) { 
     $(e.currentTarget).prop('checked', false); 
    } 
}); 

HTML:

<input class="bigSizeInput" type="radio" id="audioVideo" name="optionMedia" value="1"/> 
<input class="bigSizeInput" type="radio" id="showReel" name="optionMedia" value="2" /> 
+4

ようにそれを行うことができますこの目的のために作られていない。 –

+1

Zakariaのコメントと補足すると、radiobuttonsは常に正確に1つをチェックする必要があります。 0ではなく、2ではありません。チェックを0にしたい場合は、チェックボックスを使用する必要があります。チェックボックスをオンにした場合は、チェックボックスをオフにする必要があります。 –

+0

チェックボックスはオプションではありません。クライアントのリクエストごとにラジオボタンを使用する必要があります。 – dpasie2

答えて

0

確認が財産であるためです。そこにあればそれは真実で、そうでなければそれは真実ではない。したがって、あなたは、どちらかのチェックボックスに切り替えたり/アンチェックをチェックするためのチェックボックスを使用し

$("..").removeProp('checked')

0

を使用する必要がありますラジオボタンよりも優れています。しかし、ラジオボタンを使用する場合は、ラジオがチェックされているかどうかをチェックし、コピーされた要素のチェック属性を使用してコピーして削除し、ターゲットラジオの後に挿入する必要があります。最後に元のラジオを削除します。

$(document).on("mousedown", "input[name=optionMedia]", function(e) { 
 
    if (this.checked) 
 
    $(this).clone().prop('checked', false).insertAfter(this).end().remove();  
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
 
<input class="bigSizeInput" type="radio" id="audioVideo" name="optionMedia" value="1"/> 
 
<input class="bigSizeInput" type="radio" id="showReel" name="optionMedia" value="2" />

1

あなたがchecbox`の代わりに、 `radio`でタイプは`使用オフにしたい場合は、この

$('input.bigSizeInput').mouseup(function() { 
 
    if ($(this).is(':checked')) { 
 
    setTimeout(function() { 
 
     $('input.bigSizeInput:checked').prop('checked', false); 
 
    }, 1) 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="bigSizeInput" type="radio" id="audioVideo" name="optionMedia" value="1" /> 
 
<input class="bigSizeInput" type="radio" id="showReel" name="optionMedia" value="2" />

関連する問題