-3

重複の可能性:
javascript を使用した html スクリプトで必要な小さな変更、整理できない

HTML:

<div class="rButtons">
<input type="radio" name="numbers" value="10" onclick="uncheck();" />10
<input type="radio" name="numbers" value="20"  onclick="uncheck();" />20
<input type="radio" name="numbers" value="other" onchange="blahblahblah();"/>other
<input type="text" id="other_field" name="other_field" onblur="checktext(this);"/>
</div>

CSS:

<style type="text/css">
#other_field{
visibility: hidden;
width:40px;
height:14px;
border:1px solid #777;
background-color:#111;
font-size:10px;
color:#666;
}
</style>

jQuery:

<script>
function blahblahblah()
{
 var $radios = $('input:radio[name=numbers]');
    if ($radios.is(':checked') === true) {
       $("#other_field").show();
    }     
    else
    {
       $("#other_field").hide();
    }   
}
</script>

すべて順調ですが、問題はこれです..「その他」のラジオボタンをクリックしても何も起こりません..他のフィールドを開く必要があります。

4

2 に答える 2

3
if ($('input[name=numbers]:checked').val() === 'other') {
    // show hidden field
}

これは、ラジオボタンが であるものを見つけchecked、その値が「その他」であることを確認します。

于 2013-01-23T18:31:10.120 に答える
1

blahblahblahがラジオ ボタンによってのみ呼び出される場合はother、作成したロジックのほとんどについて心配する必要はありません。jQuery を介してハンドラーを特にotherラジオ ボタンにバインドしてみてください。

HTML:

<input type="radio" id="otherRadio" name="numbers" value="other"/>other

JS:

$('#otherRadio').on('change', function () {
    if (this.checked) {
        $("#other_field").show();
    } else {
        $("#other_field").hide();
    }
});

何らかの理由で ID をマークアップに追加できない場合は、代わりに次のような別のセレクターを使用できます。$('input[type="radio"]:contains("other")');

于 2013-01-23T18:41:08.150 に答える