Html表单单选按钮设置为默认基于PHP变量进行检查

我试图设置一个单选按钮,根据PHP变量的结果进行检查(或不选中)。 我希望在加载页面时完成此操作,以便它需要来自用户的零交互。 我遇到的问题是我似乎无法得到一个单选按钮到检查状态。

以下是一些额外的信息

单选按钮有2个。 会员和非会员。 根据用户在注册时选择的内容,我的PHP变量将包含成员或非成员。 这是我想用来确定页面加载时应检查哪一个单选按钮的数据。 (AKA是变量=成员,成员单选按钮被检查=真等)

注意:我测试了PHP变量,它保存了正确的数据。

这是我的html表单的代码:

<form name="registration" action="accountSF.php" method="post">
            <div id="leftSideForm"> <!--  Left side of the Registration Form -->

                Are you a member of an attending clubs? <br /> 
                <input type="radio" name="clubMember" id="member" value="Member" onload="return isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false;  return validateClubInfo();" />Club Member
                <input type="radio" name="clubMember" id="nonMember" value="Non-Member"  onload="return isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false; return validateClubInfo();"/>Non Member<br /> <br />       

           <button type="submit" onclick="" style="width:100px;" >Save Changes</button> 
           </div> <!-- end of Left sideform -->

</form>

这是我的JavaScript函数(包含在表单下):

<script type="text/javascript">

function isClubMember()
{
var IsMember = "<?php echo $U_Club_Member; ?>";

if(IsMember == "Member")
{
    document.getElementById("member").checked = true;
    document.getElementById("nonMember").checked = false;
    return true;
}
else if(IsMember == "Non-Member")
{
    document.getElementById("member").checked = false;
    document.getElementById("nonMember").checked = true;
    return true;
}
else
{
    return false;
}
}

任何帮助在这个问题将不胜感激。


如果您可以将PHP变量传递到窗体的视图中,则代码可以简化。 代替:

<input type="radio" name="clubMember" id="member" value="Member" onload="return isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false;  return validateClubInfo();" />Club Member

...加上一吨的Javascript,只需要做一些事情:

<input type="radio" name="clubMember" id="member" value="Member" <?= $U_Club_Member == "Member" ? 'checked' : '' ?> ... /> Club Member

你也应该看看简化你的Js。 直接在HTML中有一堆onclick / onMouseDown事件不易读取或编辑!

相反,如果你使用jQuery,你可以使用这些事件:

$('#member').on('click', function() { ... });
$('#member').on('mousedown', function() { ... });

你可以使用php自动检查和不检查复选框

<input type = "checkbox" <?php if($isMember == 'Member') { echo "checked; "} ?>>

只需添加input checked的属性您可能想在这里参考


卸下return从你onload秒,从if在你的代码(你没有,但他们没有必要):

<form name="registration" action="accountSF.php" method="post">
            <div id="leftSideForm"> <!--  Left side of the Registration Form -->

                Are you a member of an attending clubs? <br /> 
                <input type="radio" name="clubMember" id="member" value="Member" onload="isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false;  return validateClubInfo();" />Club Member
                <input type="radio" name="clubMember" id="nonMember" value="Non-Member"  onload="isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false; return validateClubInfo();"/>Non Member<br /> <br />       

           <button type="submit" onclick="" style="width:100px;" >Save Changes</button> 
           </div> <!-- end of Left sideform -->

</form>

将是你的新的HTML。

链接地址: http://www.djcxy.com/p/56053.html

上一篇: Html form Radio button set to checked by Default Based on PHP variable

下一篇: Checkbox not working in mvc3