html部分
<form action="" method="post" onsbmit="return check()"
<input type="checkbox" value="A" name="one[]" /><span>A</span>
<input type="checkbox" value="B" name="one[]" /><span>B</span>
<input type="checkbox" value="C" name="one[]" /><span>C</span>
<input type="checkbox" value="D" name="one[]" /><spanD</span>
<input value="A" name="two[]" type="checkbox" /><span>A</span>
<input value="B" name="two[]" type="checkbox" /><span>B</span>
<input value="C" name="two[]" type="checkbox" /><span>C</span>
<input value="D" name="two[]" type="checkbox" /><span>D</span>
<input value="E" name="two[]" type="checkbox" /><span>E</span>
<span>其他</span>
<input name="two[]" type="text" />
<span id="ann"></span>
<input type="submit" value="确定">
JS部分:
<script>
function check(){
var one = document.getElementsByName("one[]");
var two = document.getElementsByName("two[]");
if (one[0].checked || one[1].checked) {
for (var i=0; i<two.length; i++) {
if (i <= 4) {
if (two[i].checked) {
return;
}
} else {
if (two[i].value != "") {
return;
}
}
}
//以下两行代码执行不了
var message = document.getElementById("ann");
message.innerHTML='<font color="#FF0000">请将答案填写完整</font>';
}
}
//但在这里就可以执行,我不明白了
//var message = document.getElementById("ann");
//message.innerHTML='<font color="#FF0000">请将此题答案填写完整</font>';
</script>
帮我看看谢谢
<form action="" method="post" onsbmit="return check()"
<input type="checkbox" value="A" name="one[]" /><span>A</span>
<input type="checkbox" value="B" name="one[]" /><span>B</span>
<input type="checkbox" value="C" name="one[]" /><span>C</span>
<input type="checkbox" value="D" name="one[]" /><spanD</span>
<input value="A" name="two[]" type="checkbox" /><span>A</span>
<input value="B" name="two[]" type="checkbox" /><span>B</span>
<input value="C" name="two[]" type="checkbox" /><span>C</span>
<input value="D" name="two[]" type="checkbox" /><span>D</span>
<input value="E" name="two[]" type="checkbox" /><span>E</span>
<span>其他</span>
<input name="two[]" type="text" />
<span id="ann"></span>
<input type="submit" value="确定">
JS部分:
<script>
function check(){
var one = document.getElementsByName("one[]");
var two = document.getElementsByName("two[]");
if (one[0].checked || one[1].checked) {
for (var i=0; i<two.length; i++) {
if (i <= 4) {
if (two[i].checked) {
return;
}
} else {
if (two[i].value != "") {
return;
}
}
}
//以下两行代码执行不了
var message = document.getElementById("ann");
message.innerHTML='<font color="#FF0000">请将答案填写完整</font>';
}
}
//但在这里就可以执行,我不明白了
//var message = document.getElementById("ann");
//message.innerHTML='<font color="#FF0000">请将此题答案填写完整</font>';
</script>
帮我看看谢谢
解决方案 »
- 在extjs中,panel中。从后台读取数据
- if...else..小问题
- [新手]怎么使一个对象上的触发事件改变另外一个对象的值?
- 焦急等待我遇到的问题解决
- 超级难题::::::在本地,用javascript怎么样把一个文件复制到另一个文件中去????
- 怎么在js里让button上的文字分两行显示?
- 最后20分,全送你了。Jsp和Javascript到底啥区别啊?
- 为什么会出现"A Runtime Error has occurred. Do you wish to Debug?"
- mouse(x,y)
- IndexedDB创建对象存储失败
- 下拉列表选择更改不触发js事件
- 如何取得 input 中被 highlight的文字?
还有
1.LZ你的标签没闭合(没有</form>)
2.onsubmit拼错(不是onsbmit)看看改正后的代码吧<form action="" method="post" onsubmit="return check()">
<input name="one[]" type="checkbox" value="A" /><span>A</span>
<input name="one[]" type="checkbox" value="B" /><span>B</span>
<input name="one[]" type="checkbox" value="C" /><span>C</span>
<input name="one[]" type="checkbox" value="D" /><span>D</span>
<br/>
<input name="two[]" type="checkbox" value="A" /><span>A</span>
<input name="two[]" type="checkbox" value="B" /><span>B</span>
<input name="two[]" type="checkbox" value="C" /><span>C</span>
<input name="two[]" type="checkbox" value="D" /><span>D</span>
<input name="two[]" type="checkbox" value="E" /><span>E</span>
<span>其他</span>
<br/>
<input name="two[]" type="text" />
<span id="ann"></span>
<input type="submit" value="确定">
</form><script>
function check()
{
var one = document.getElementsByName("one[]");
var two = document.getElementsByName("two[]");
if (one[0].checked || one[1].checked)
{
for (var i=0; i<two.length; i++)
{
if (i <= 4)
{
if (two[i].checked) {alert(2);return;}
}
else
{
if (two[i].value != "") {alert(3);return;}
}
} //以下两行代码执行不了
var message = document.getElementById("ann");
message.innerHTML='<font color="#FF0000">请将答案填写完整</font>';
}
}
//但在这里就可以执行,我不明白了
//这里不在函数体内,当然会执行了
//var message = document.getElementById("ann");
//message.innerHTML='<font color="#FF0000">请将此题答案填写完整</font>';</script>
submit<form>没有右>,没有</form>
然后你关键的错误
在执行check函数时, 如果你的条件不通过就 return 返回了,所以没有执行你后面的两句
而当条件通过时, 实际是执行了你那两句, 但是执行完后, 马上form提交, 提交的页面是自己, 相当于刷新了一下. 那两句的执行效果你没有看到我不知道你想要什么效果,但希望以下的代码对你调试有帮助
<form action="" method="post" onsubmit="return check()">
<input type="checkbox" value="A" name="one[]" /><span>A</span>
<input type="checkbox" value="B" name="one[]" /><span>B</span>
<input type="checkbox" value="C" name="one[]" /><span>C</span>
<input type="checkbox" value="D" name="one[]" /><span>D</span> <input value="A" name="two[]" type="checkbox" /><span>A</span>
<input value="B" name="two[]" type="checkbox" /><span>B</span>
<input value="C" name="two[]" type="checkbox" /><span>C</span>
<input value="D" name="two[]" type="checkbox" /><span>D</span>
<input value="E" name="two[]" type="checkbox" /><span>E</span>
<span> 其他</span>
<input name="two[]" type="text" />
<input type="submit" value="确定">
</form><span id="ann">ann</span><script>
function check(){
var one = document.getElementsByName("one[]");
var two = document.getElementsByName("two[]");
if (one[0].checked || one[1].checked) {
for (var i=0; i<two.length; i++) {
if (i <= 4) {
if (two[i].checked) {
return;
}
} else {
if (two[i].value != "") {
return;
}
}
} //以下两行代码执行不了
var message = document.getElementById("ann");
message.innerHTML='<font color="#FF0000">请将答案填写完整</font>'; }
return false;
}
//但在这里就可以执行,我不明白了
//var message = document.getElementById("ann");
//message.innerHTML='<font color="#FF0000">请将此题答案填写完整</font>';</script>
message.innerHTML='<font color="#FF0000">请将答案填写完整</font>';
这两行能够执行,我的判断条件没有问题,我用alert输出任何东西,在那个位置都能输出,就是innerHTML在那里没有结果
<input name="one[]" type="checkbox" value="A" /><span>A</span>
<input name="one[]" type="checkbox" value="B" /><span>B</span>
<input name="one[]" type="checkbox" value="C" /><span>C</span>
<input name="one[]" type="checkbox" value="D" /><span>D</span>
<br/>
<input name="two[]" type="checkbox" value="A" /><span>A</span>
<input name="two[]" type="checkbox" value="B" /><span>B</span>
<input name="two[]" type="checkbox" value="C" /><span>C</span>
<input name="two[]" type="checkbox" value="D" /><span>D</span>
<input name="two[]" type="checkbox" value="E" /><span>E</span>
<span>其他</span>
<br/>
<input name="two[]" type="text" />
<span id="ann"></span>
<input type="submit" value="确定">
</form><script>
function check()
{
var one = document.getElementsByName("one[]");
var two = document.getElementsByName("two[]");
var bOk = false;
if (one[0].checked || one[1].checked)
{
for (var i=0; i<two.length; i++)
{
if (i <= 4)
{
if (two[i].checked) {bOk = true;}
}
else
{
if (two[i].value == "") {bOk = false;}
}
}
}
if (bOk)
{
return true;
}
else
{
//以下两行代码执行不了
var message = document.getElementById("ann");
message.innerHTML='<font color="#FF0000">请将答案填写完整</font>';
return false;
}
}
</script>