2

尝试在加载时隐藏 HTML 文本输入,但如果选中单选按钮,则表单将显示。

http://pastie.org/private/ah39ul5h4jtmlntkbmmda

我已经让它工作了,我只需要在页面加载时隐藏该字段。

<form action="profile_edit_gravatar.php" method="post">
    <label class="radio inline">
        <input type="radio" <?php if($row[16]=='account') {echo ' checked';}?> onload="this.form.otheremail.style.visibility='hidden';" onclick="
            if (this.checked) {
            this.form.otheremail.style.visibility='hidden';
            } else {
            this.form.otheremail.style.visibility='visible';
            }
            return true;
        ">
        Use <?php echo $row[3];?>
    </label>
    <input type="text" name="otheremail">
</form>
4

3 回答 3

1

我给收音机和字段一个 ID 怎么样 - 实际上现在我写了一个使用 getElementsByName 的脚本不太重要......

演示

<?php $hide = $row[16]=='account'; ?>
<style>
<?php if ($hide) { echo '#otheremail {visibility:hidden;}'; ?>
</style>
<script>
 window.onload=function() {
   var rads = document.getElementsByName("gravatarradios");
   rads[0].onclick=rads[1].onclick=function() {
     this.form.otheremail.style.visibility=(this.value=="Use")?'hidden':'visible';
   }
   if (<?php echo $hide; ?>) rads[0].click(); else rads[1].click();
 }
 </script>

HTML

<form action="profile_edit_gravatar.php" method="post">
<label class="radio" for="gravatarradios1">
    <input type="radio" name="gravatarradios" id="gravatarradios1" value="Use">
    Use     </label>
<label class="radio" for="gravatarradios2">
    <input type="radio" name="gravatarradios" id="gravatarradios2" value="Use other">
    Use another email:
</label>
<input type="email" name="otheremail" id="otheremail" placeholder="Gravatar email address">
</form>
于 2013-03-30T17:46:44.120 回答
0

您可以使用 CSS 对其进行样式设置。默认情况下,这将隐藏所有输入:

input {
    visibility: hidden;
}
于 2013-03-30T17:42:25.593 回答
0

输入元素没有 onload 事件,您可以默认使用 CSS 隐藏元素,然后在单击单选框时对其进行处理。

另一种选择是将 onload 用于正文。

<body onload="document.forms[0].otheremail.style.visibility='hidden';" >
于 2013-03-30T17:49:44.987 回答