2011-11-12 5 views
0

...のオーバーライドでpreventDefault()私は、フォーム処理スクリプトを作成するために、シングルトンパターンを使用してい

私はすべてのコードを投稿する必要はありませんが、第1の方法はでpreventDefault使用しています。

//public methods 
    handleSubmit: function (e) { 

     //prevent the default submission process 
     e.preventDefault(); 

}, 

preventDafaultは、サーバー側の処理を停止するためのフォームをハイジャックすることである何それが必要ありません。

それから私は、検証ルールを作成している...とすべての検証ルールが渡された場合には、この方法でオフに終了:

validData: function (error) { 
     if (error.length === 0) { 
      return true; 
     } else { 
      // If there are errors in the form then run alert message 
      alert(error); 
     } 

    }, 

エラーがない場合は、サーバーサイドスクリプトが処理することをされていること私は画像に問題があるので、AJAXを使用していません。

しかし、ここではtrueを返しても動作しません。理由は分かりませんが私はそれのための非常に単純な理由があると確信しています

+0

trueを返すのではなく、プログラムによって送信をトリガすることはできませんか?一度あなたがデフォルトを防ぐと、私は真実を返すことはもはや何もしないと思います。 '.submit()' – mrtsherman

+0

'true '戻り値は何を期待していますか? – Pointy

答えて

0

できますよあなたはpreventDefault関数をスキップし、ちょうどこれのような何かをする?

var hasErrors = false; 
    if(myLogicHasErrors){ 
     hasErrors = true; 
    } 
    if(hasErrors) return false; 

それはちょうど、フォームの送信を防ぐことなく、あなたの検証チェックを通過しない限り、デフォルトを防ぐことができます。

+0

大丈夫でした。私は "return CS.AddNode.Form.submit():"を使用しました。編集:いいえ、 – AndyW

+0

が最終的に道を見つけました。最後のメソッドでエラーが0に等しくなるまで、すべてのメソッドの最後に "return false"を置き、 "return CS.AddNode.Form.submit();"を実行しました。 – AndyW

+0

hmmmm ...あなたのケースで 'CS.AddNode.Form.submit();'を返す必要があるかどうか確かめないでください。私はあなたがsubmit()にフォームを伝えているだけなので、あなたは返りを必要としないと想像します。 –

関連する問題