以下代码在chrome和IE中有所作为,但在Firefox中没有。
这个想法是强制用户在推进之前检查“同意”框,然后按照其中一个可用的链接进行操作。
<script type="text/javascript">
function agreeCheck()
{
valid = false;
var agree = document.getElementById('agree');
if(isAgree(agree)){
valid= true;
}
return valid;
}
function isAgree(elem)
{
if ( elem.checked == false )
{
Show_Stuff(agreespan, "true");
return false;
}
else
{
Show_Stuff(agreespan, "false");
return true;
}
}
function Show_Stuff(warning,on_off)
// Function that will swap the display/no display for
// all content within span tags
{
if ((warning.style.display == "none")&&(on_off =="true"))
{
warning.style.display = "";
}
else
{
warning.style.display = "none";
}
}
</script>
<input type="checkbox" name="agree" value="signed" id="agree">
I agree</input> <span ID="agreespan" style="display: none">
<font color="red">You must agree in order to proceed</font>
</span>
<button type="button" title="Proceedt" class="btn-proceed" onclick="if (agreeCheck()==true){ window.location='myURL'; } else{ return agreeCheck();}"></button>
<input type="image" src="anotherURL" title="myTitle" onClick="return agreeCheck();"/>
注意:
提前感谢您的帮助!
**编辑:我将if语句(最后一行)更改为
if (agree.checked ==true){ ...
这解决了Chrome和IE中的问题,现在这些浏览器表现正常。 Firefox仍然没有做我想做的事情
答案 0 :(得分:0)
问题出在isAgree函数中。请尝试以下方法:
function isAgree(elem)
{
if (!elem.checked == "Checked")
{
Show_Stuff(agreespan, "true");
return false;
}
else
{
Show_Stuff(agreespan, "false");
return true;
}
}
希望它能解决这个问题。该解决方案解决了这个“已检查”属性。
答案 1 :(得分:0)
span_tag.style.display用于布局目的,不隐藏或显示范围标记
它在你的情况下不起作用,因为JavaScript可能会破坏
尝试更改所有内容以使用以下代码
warning.style.visibility = "hidden";
warning.style.visibility = "visible";