我想验证一个表单,但我想要 9 个不同的函数来验证表单。使用哪个验证功能应由屏幕上的滑块确定,或者由滑块控制的跨度“范围”中的值确定)
如果我只使用一个函数来执行以下操作,我可以很好地验证表单:
<script>
function validateFormMethod1() {
// do my validation stuff here
}
</script>
<form method="post" action="whatevermailscript.php"name="GuestInfo" onSubmit="return validateFormMethod1();">
<input type="submit" value="Send" name="submit" />
<span>Guests</span>
<span id="range">1</span>
<input id="scaleSlider" type="range" value="1" min="1" max="9" step="1" onchange="showValue(this.value) ; showOrHide(this.value)"/>
但是我该如何添加这个以便 ifrange.value==2
validateFormMethod2
会被调用而不是validateFormMethod1
?
更新 3:
<script>
function validateFormMethod0() {
}
function validateFormMethod1() {
window.alert("Method 1");
return false;
}
function validateFormMethod2() {
window.alert("Method 2");
return false;
}
function validateFormMethod3() {
window.alert("Method 3.");
return false;
}
function validateFormMethod4() {
window.alert("Method 4.");
return true;
}
var validationFunctions = [
validateFormMethod0,
validateFormMethod1,
validateFormMethod2,
validateFormMethod3,
validateFormMethod4
];
function validateForm() {
var range = document.getElementById("range");
validationFunctions[range.innerHTML]();
}
</script>
仍然不能完全按照建议工作,但这符合我的目的:
function validateForm()
{
var range = document.getElementById("range");
if (range.innerHTML == "1")
{
// do my validation stuff for case one here
}
if (range.innerHTML == "2")
{
// do my validation stuff for case two here
}
}