Javascript函数

时间:2011-02-14 16:15:59

标签: javascript function event-handling return-value

我有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;" />

3 个答案:

答案 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;"

你必须删除第一个“返回”。