2

2 つの別々の JavaScript 関数を使用してフォームを検証しようとしています。

<form onsubmit="return formCheck(this); return validate_dropdown();"  
      action="somepage.php" 
      method="post" 
      name="something">

送信値に 1 つだけ追加すると、各関数は個別に正常に動作します。2 つ追加すると、最初の関数の検証のみが機能し、2 番目の関数は機能しません。ここで何が問題なのですか?

4

4 に答える 4

4

onsubmit から戻り値を削除し、関数に追加します。

onsubmit="return (formCheck(this) && validate_dropdown())"

于 2010-06-24T03:41:12.047 に答える
2
onsubmit="return (formCheck(this) && validate_dropdown())"
于 2010-07-09T23:39:35.250 に答える
1

賛成または反対票を投じるほどの評判はありませんが、次のように2つのリターンがある場合は、次のようreturn formCheck(this) && return validate_dropdown();に記述する必要があることを保証できます.return formCheck(this) && validate_dropdown();

...2 番目の 'return' を除外します。

したがって、このスレッドで最も多くの票を獲得した返信は実際には間違っており、(執筆時点で) 0 票の Anax の返信が私の問題を解決しました。その他は、IE でスクリプト エラーが発生しました。

于 2011-04-13T21:30:13.467 に答える
0

formCheck最初の関数 ( ) が実行されるとすぐに、フォームの送信を許可または拒否する値を返すため、コードは機能しません。

同時に使用したい関数が 2 つ以上ある場合は、それらの結果を結合するか、新しい関数を作成して、両方の検証関数を実行し、結果を返すことができます。

方法 A。

<form onsubmit="return (function1(this) && function2(this))">

方法 B。

<script type="text/javascript">
function formValidation(myForm)
{
    var result =  function1(myForm);
    result = result && function2(myForm);
    return result;
}
</script>

<form onsubmit="return formValidation(this)">
于 2010-07-10T00:27:53.437 に答える