0

ユーザー入力用のフィールドを含むフォームがあります。このフォームには、入力コントロールごとに Asp.net 検証コントロールがあります。一部のバリデーターは、関連する JavaScript 関数で内部検証ロジックを処理するために使用されるカスタム バリデーターです。フォームのonsubmitイベントが発生したときにフォームが有効であることを確認したい場合は、次のコードを使用します。

form = documet.forms[0];

 form.onsubmit=function(){

 if(validMobile){
  return true;
 }
 return false;

}

ここで、validmobile が true の場合に送信ボタンをクリックすると、常に true が返され、フォームは常にサーバーに投稿され、他の検証は起動されません。フォームの検証を行い、カスタマイズされた検証ロジックを確認する方法はありますか? 例えば ​​:

form = documet.forms[0];

 form.onsubmit=function(){

 if(<b><u>form.isvalid</u></b> && validMobile){
  return true; 
 }
 return false; 

}
4

1 に答える 1

0

returnステートメントは、呼び出されると関数を離れます。したがって、すべてのテストが行​​われたことが確実でない限り、それを呼び出すべきではありません。

たとえば、 flag を使用するisValidと、検証のいずれかが失敗したかどうかを追跡できます。

すべての検証を行った後、固定値の代わりにそのブール値を返すことができます。

form = documet.forms[0];

form.onsubmit = function(){
    var isValid = true;

    if(!validMobile){
        isValid = false;
    } else if(!validDesktop) {
        isValid = false;
    }

    return isValid;
}
于 2013-10-08T10:39:49.027 に答える