在页面加载期间触发选中单选按钮的单击事件


triggering a click event for checked radio button during page load

>我的html表单中有两组单选按钮,我显示的隐藏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 就绪模式下尝试,但没有运气

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

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>