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

时间:2013-10-02 13:54:24

标签: javascript php jquery html radio-button

我的html表单中有两组单选按钮,我显示隐藏的div取决于单选按钮选择。如果单击两个单选按钮,则显示隐藏的div ONLY 。我是如果单击单选按钮,则使用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();
});

1 个答案:

答案 0 :(得分: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>