我想验证表单,但我希望有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)"/>
但我如何才能添加此内容,以便在调用range.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
}
}
答案 0 :(得分:3)
使用一系列函数。
var validationFunctions = [
validateFormMethod1,
validateFormMethod2,
validateFormMethod3,
....
];
function validateForm() {
validationFunctions[range.value]();
}