1

HTMLフォームに2セットのラジオボタンがあり、ラジオボタンの選択に応じて非表示のdivを表示しています。非表示のdivは、両方のラジオボタンがクリックされた場合にのみ 表示されます。ラジオボタンの場合、クリックをトリガーするためにjqueryを使用していますクリックされる

しかし、ページをロードするたびに、ボタンが期待どおりにチェックされ、クリックイベントがトリガーされません。そのため、ユーザーはラジオ ボタンを再度チェックする必要があります (選択されていても)。

ラジオボタンの私のHTMLコード:

<div class="block">
<input onClick="show_seq_lunid();" type="radio" name="button1" value="Yes" <?php if(!isset($_POST['button1']) || (isset($_POST['button1']) && $_POST['button1'] == 'Yes')) echo ' checked="checked"'?> checked /><label>Yes</label> 
<input onClick="show_list_lunid();" type="radio" name="button1" value="No" <?php if(isset($_POST['button1']) && $_POST['button1'] == 'No')  echo ' checked="checked"';?> /><label>No</label>
</div>  

<div class="block">
<input onClick="os_others();" type="radio" name="button2" value="Yes" <?php if(!isset($_POST['button2']) || (isset($_POST['button2']) && $_POST['button2'] == 'Yes')) echo ' checked="checked"'?> checked /><label>Others</label>   
<input onClick="os_hpux();" type="radio" name="button2" value="No" <?php if(isset($_POST['button2']) && $_POST['button2'] == 'No')  echo ' checked="checked"';?> /><label>HP-UNIX</label>
</div>

そして、以下のコードを試して、チェックされたラジオボタンのクリックイベントをトリガーしました

$('input:radio[name=button1]:checked').click();
$('input:radio[name=button2]:checked').click();

しかし、それは機能していません。クリックイベントをトリガーするにはどうすればよいですか?

更新: 以下のコードを使用して DOM Ready モードで試しましたが、うまくいきませんでした

$(document).ready(function() {
$('input:radio[name=button1]:checked').click();
$('input:radio[name=button2]:checked').click();
});
4

1 に答える 1

2

http://jsfiddle.net/tVRrb/

if($('input[name="button1"]').is(':checked')){
    alert('1 is checked');
}

if($('input[name="button2"]').is(':checked')){
    alert('2 is checked');
}

上記は機能しますが、jsfiddle が onClick 属性での関数呼び出しを好まないことに気付きました。以下は私のブラウザでは機能しましたが、jsfiddleでは機能しませんでした。関数が何らかの形で定義されていることはわかりません。

<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>

<div class="block">
<input onClick="myOtherAlert();" type="radio" name="button1" value="Yes" checked /><label>Yes</label>
<input onClick="myOtherAlert();" type="radio" name="button1" value="No" /><label>No</label>
</div>

<div class="block">
<input onClick="myAlert();" type="radio" name="button2" value="Yes" checked /><label>Others</label>
<input onClick="myAlert();" type="radio" name="button2" value="No" /><label>HP-UNIX</label>
</div>


<script>
if($('input[name="button1"]').is(':checked')){
    $('input[name="button1"]:checked').trigger('click');
}

if($('input[name="button2"]').is(':checked')){
    $('input[name="button2"]:checked').trigger('click');
}

function myAlert(){
    alert('it worked');
}
function myOtherAlert(){
    alert('see');
}
</script>
</body>
</html>
于 2013-10-02T14:15:18.880 に答える