使用JavaScript查找HTML表单上的值范围

时间:2014-02-20 21:37:19

标签: javascript html forms function alert

我是使用JavaScript的新手,我目前正在尝试查找HTML表单中提交的值之间的范围。提交了五个值,名为E1-E5,例如:

<input type="text" size="2" name="E1" pattern="[0-9mM]{2}" 
onKeyup="autotab(this, document.tri_1.E2)" maxlength=2 autofocus 
autocomplete="off"/>

这是我目前的代码:

<script type="text/javascript">
    function checkScores(){
        var eOne = document.getElementById("E1").value;
        var eTwo = document.getElementById("E2").value;
        var eTheee = document.getElementById("E3").value;
        var eFour = document.getElementById("E4").value;
        var eFive = document.getElementById("E5").value;

        var scoresArray = [eOne, eTwo, eThree, eFour, eFive] ;
        var scoresMax = Math.max(scoresArray) ;
        var scoresMin = Math.min(scoresArray) ;

        var scoresDifference = scoresMax - scoresMin ;

        if (scoresDifference > 10)
        window.alert("The inputted scores have a range of more than 1 whole mark. 
        Do you want to accept these scores?") ;
    }
</script>

表单有一个提交按钮,我希望在将分数保存到MySQL数据库之前执行该脚本:

<input type="submit" name="saveNext" 
value="Save and load next competitor" onSubmit="checkScores()" />

非常感谢任何帮助或指示!

1 个答案:

答案 0 :(得分:0)

您不能将Math.maxMath.min与数组一起使用。

您有两种解决方案:

var scoresMax = Math.max(eOne, eTwo, eThree, eFour, eFive);
// ...

OR

var scoresMax = Math.max.apply(null, scoresArray);
// ...

(见apply