2017-01-05 2 views
0

私は単純なHtml.BeginFormをいくつかのデータで使用しています。フォームが送信される前に、ユーザーが "submit"ボタンをクリックしたときにonsubmit()JavaScript関数を使用して、そして、この条件が偽である場合、私はページをリロードするのをやめたいだけで、私のフォームをPOSTメソッドに送らないでください。これが正常に動作している、ビット私は、問題に会った私はonSubmit検証で作成DOM要素()メソッド消える理由:私はfalseを返すようにしたい、とフォームを送信しないのでフォームonsubmitがDOM要素を呼び出すときにエラーが発生しました

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form", **onsubmit=" return registerValidation()"**})) 
    { 
     @Html.AntiForgeryToken() 

    @Html.TextBoxFor(m => m.Email, new { @class = "form-control", @id = "emailVal"}) 
    @Html.ValidationMessageFor(m => m.Email,"", new { @class = "validation-error-white", @id="emailValidation"}) 

    <input type="submit" class="btn btn-warning btn-block add-item-button-text" value="Zarejestruj" /> 

    } 


<script type="text/javascript"> 

    function registerValidation() { 

      var validForm = validateRegisterForm(email, login); 
      if (!validForm) { 
       $('#emailValidation').append('Those email already exists! Take another one'); 
       return false; 
      } 
      return true; 
     } 
    </script> 

は、テキストそのI何が間違っているのかを示すvalidation-divに追加してください。これは、私が達成したいものではありません。時間が非常に短いため、ユーザーはそれに気付くことさえできません!

答えて

1

ボタンのクリックイベントを手動でトリガーします。 タイプボタンであることを確認してください。

あなたは**onsubmit=" return registerValidation()"**

<input id="btnSubmit" type="button" ... /> 

<script type="text/javascript"> 

    $(function() { 

     // Trigger btnSubmit button's click event, when enter key is pressed. 
     // If you do not want that feature, you can ignore this. 
     $("form").keydown(function (event) { 
      if (event.keyCode === 13) { 
       $("#btnSubmit").click(); 
       return false; 
      } 
     }); 

     $("#btnSubmit").click(function() { 
      // Do something, then submit the form 
      $("form").submit(); 
     }); 
    }); 
</script> 
+0

おかげで多くのことをする必要はありません! とにかく、ここでは入力タイプをボタンにする必要があります。 click()の代わりにonclick()を使用してボタン定義で呼び出すことができます。

+1

' type = "button" 'はフォームを送信しません。 '$("#btnSubmit ")。クリックは、基本的に' onclick = "someFun()" 'と同じイベントをアタッチするjQueryの方法ですが、jQueryを使用する場合は優先メソッドです。 – Win

関連する問題