我有3个javascript函数:
validateClk()
,validateAmPm()
和getClks()
在两个发生的事件中,它们按如下方式执行:
OnChange
- 执行validateClk()
和validateAmPm()
OnClick
- 执行getClks()
(getClks()
返回布尔值)
所有3个函数都正常运行,但问题是,在getClks()
完成执行并返回布尔值后,下一个函数postClocks()
不会运行。我非常确定postClocks()
的代码也是正确的。如果我不对getClks()
使用return语句,那么getClks()
函数将无法按预期工作。
请帮助:(
<script type='text/javascript'>
function validateClk() {
....
var clks = clocks.value;
if (clks == "") {
alert('Enter time');
}
else { ... }
}
</script>
<script type='...'>
function validateAMPM() {
...
var ampm= ap.value;
if (ampm=="") {
alert('Enter am or pm');
}
}
</script>
<script type='text/...'>
function getClks() {
var clks= clock.value;
var ampm= ap.value;
if (clks==" && ampm="") {
alert('Enter time and am/pm');
return false;
}
else { ... }
return true;
}
</script>
<... onChange="validateClk(); validateAmPm();" />
<... button label="Submit" onClick="return getClks(); postClocks(); return false;" />
答案 0 :(得分:4)
这是因为您在那里明确编码了return
。
return getClks();
postClocks();
return false;
该代码将始终在第一个return
语句之后退出。我建议删除它。
答案 1 :(得分:2)
让所有自定义函数返回boolean
,然后将onclick
事件更改为:
onClick="if(!getClks() || !postClocks()) return false;"
假设您不想继续无效
答案 2 :(得分:0)
你写了
onClick="return getClks(); postClocks(); return false;"
你必须删除第一个“返回”。