フォームを検証したいのですが、フォームを検証するために 9 つの異なる関数が必要です。どの検証関数を使用するかは、画面上のスライダーによって決定するか、スライダーによって制御されるスパン「範囲」の値によって決定する必要があります)。
以下のように1つの関数を使用しているだけであれば、フォームをうまく検証できます。
<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
代わりに if が呼び出されるようにするにはどうすればよい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
}
}