我正在尝试根据PHP变量的结果设置要检查(或未检查)的单选按钮。我希望在加载页面时完成此操作,以便它不需要用户进行任何交互。我遇到的问题是我似乎无法将单选按钮置于已检查状态。
以下是一些额外信息
单选按钮有2个。会员&非会员。根据用户在注册时选择的内容,我的PHP变量将包含Member或非Member。这个数据我想用来确定在加载页面时应该检查哪一个单选按钮。 (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;
}
}
对此事的任何帮助将不胜感激。
答案 0 :(得分:1)
如果您可以将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() { ... });
答案 1 :(得分:1)
您可以使用php
<input type = "checkbox" <?php if($isMember == 'Member') { echo "checked; "} ?>>
只需在checked
中添加属性input
您可以参考here
答案 2 :(得分:0)
从您的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。