在单选按钮内从PHP echo调用JavaScript函数
我有一系列单选按钮,onClick可以显示或隐藏Div: 显示Div:在单选按钮内从PHP echo调用JavaScript函数,php,javascript,radio-button,Php,Javascript,Radio Button,我有一系列单选按钮,onClick可以显示或隐藏Div: 显示Div: <input type="radio" name="con[4]" value="1" onclick="toggleLayer4(this.checked);" id="con4" /> <input type="radio" name="con[4]" value="0" onclick="toggleLayer4(!this.checked);" checked="checked" id="con4
<input type="radio" name="con[4]" value="1" onclick="toggleLayer4(this.checked);" id="con4" />
<input type="radio" name="con[4]" value="0" onclick="toggleLayer4(!this.checked);" checked="checked" id="con4" />
function toggleLayer4(val)
{
if(val == '1' || val === true)
{
document.getElementById('con4').checked = true;
document.getElementById('con4PSTN').style.display = 'block';
}
else if(val == '0' || val === false)
{
document.getElementById('con4').checked = false;
document.getElementById('con4PSTN').style.display = 'none';
}
}
现在的问题是,当pag被召回时,我可以像这样检查单选按钮:
<input type="radio" name="con[4]" value="1" onclick="toggleLayer4(this.checked);" <? if ($conn_count[3] == 1){echo "checked=\"checked\"";}?> id="con4" />
如果您是从php回音,那么您应该像
echo "<script type='text/javascript'>toggleLayer4(this.checked);</script>";
echo“toggleLayer4(this.checked);”;
但是你不能在那里使用这个。您需要手动获取单选按钮的值并传递它
编辑
当您希望在代码的某些部分显式调用函数,并且php代码是而不是带有
标记的时,就是这种情况
<input type="radio" name="con[4]" value="0" onclick="toggleLayer4(0);" checked="checked" id="con4" />
<input type="radio" name="con[4]" value="1" onclick="toggleLayer4(1);" checked="checked" id="con4" />
function toggleLayer4(val)
{
if(val){
document.getElementById('con4PSTN').style.display = 'block';}
else{
document.getElementById('con4PSTN').style.display = 'none';
}
}
功能切换LAYER4(val)
{
if(val){
document.getElementById('con4PSTN').style.display='block';}
否则{
document.getElementById('con4PSTN').style.display='none';
}
}
这里有一个简单的、不引人注目的javascript,它将为您节省一些工作-请注意,收音机上不再有事件处理程序
我给了他们唯一的ID,这是强制性的
如果您需要将jQuery用于其他内容,那么这个脚本可以更优雅一些
我想
<input type="radio" name="con[1]" value="1" id="con1_1" />
<input type="radio" name="con[1]" value="0" id="con1_0" />
<input type="radio" name="con[2]" value="1" id="con2_1" />
<input type="radio" name="con[2]" value="0" id="con2_0" />
<input type="radio" name="con[3]" value="1" id="con3_1" />
<input type="radio" name="con[3]" value="0" id="con3_0" />
<input type="radio" name="con[4]" value="1" id="con4_1" />
<input type="radio" name="con[4]" value="0" id="con4_0" />
以及匹配对象以具有conxPSTN,其中x是con[x]中的数字
window.onload=function() {
var conLength = <?php echo count($con); ?>;
for (var i=1;i<=conLength;i++) {
var cons = document.getElementsByName("con["+i+"]");
for (var j=0;j<cons.length;j++) {
cons[j].onclick=function() {
var id = this.id.split("_")[0];
document.getElementById(id+"PSTN").style.display = (this.value==1)?"block":"none"
}
if (cons[j].checked) cons[j].click();
}
}
}
window.onload=function(){
var conLength=;
对于(var i=1;i您不能同时检查这两个选项,也不能在代码中检查已检查的值。谢谢,我非常喜欢您的解决方案,尽管我遇到了问题,因为即使按钮被手动选中,相应的Div也不会显示,以下是需要显示/隐藏的Div代码:PSTN line?
id=“con1PSTN”/>不,哦,你假设是正确的!而且,如果你重复使用$con,那么就没有$con,总会有10个div来显示…+1,尽管如果你不使用cons[j]会更好.onclick
。使用addEventListener
@jrh-Nah,那么我也需要附加事件-onclick适用于我所知道的所有浏览器。@bitterss-如果它有效,请随意添加