1

我的 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();
});
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 回答