2017-02-17 24 views
1

データを送信してもページを更新しないようにするフォームがあります。私はリフレッシュを停止するが、提出を停止したこのコードを追加しました。 preventDefault()を使用するときにこれを行う方法はありますか?jQueryフォームをリフレッシュせずに送信

$("editUserForm").on('submit', function (e) { 
       e.preventDefault(); 

       $.ajax({ 
        url: this.action, 
        type: 'POST', 
        data: $("editUserForm").serialize() 

       }) 

      }); 
+1

コンソールにエラーが発生しましたか? – j08691

+0

これが実際のセレクタの場合、このスクリプトはまったく何もしません。 – Andreas

+1

'$(" editUserForm ")'セレクタが正しいことを確認してください。 – TechVision

答えて

1

だけのように、タイプeditUserFormの要素を選択しますあなたの選択:

$("#editUserForm") 

<form id="editUserForm"></form> 

またはby its name attribute

<editUserForm></editUserForm> 

あなたはおそらく、フォームのいずれかby its idを選択するためのもの

$("form[name='editUserForm']") 

<form name="editUserForm"></form> 
+0

間違ったセレクタでは、スクリプトは効果を持ちません。しかし、 "このコードを追加してリフレッシュを停止しましたが、submit_を停止しました。"したがって、これはここで問題になることはできません。 – Andreas

+0

@Andreasええ、これは間違いなく問題の一部です。タイプミスかもしれませんが、それは2度目に繰り返されるので、私はそれを疑っています。私はOPが非常に混乱していると思いますが、私は質問で明らかになっている問題にしか対処できません。 – JDB

+0

@ JDBマイセレクタは健全なようです。 preventDefaultを削除すると、フォームが送信されます。フォームIDと名前はどちらもeditUserForm –

0

ここには、リフレッシュページなしのajaxを使用してフォームを送信するコードがあります。

   <form name="addstudent" id="addstudent" action="add.php" method="post"> 

        <fieldset><legend>Add student to tutoring list</legend> 
        <div><label for="studentid">ID number</label><input type="text" name="studentid" id="studentid"></div> 


        <div><label for="assignment">Tutoring assignment</label><select name="assignment" id="assignment"> 
        <option value="">Please select an assignment</option> 
        <option value="att">Activity Time</option> 
        <option value="acc">ACC</option> 
        <option value="tech">ACC Tech </option> 
        <option value="ast">After School</option> 
        </select></div> 

        <div><label for="teacher">Assigning teacher</label><input type="text" name="teacher" id="teacher"></div> 

        <input type="submit" name="submit" value="submit" id="submit"> 
        </fieldset> 
        </form> 

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
        <script> 
        $(document).ready(function(){ 

         $("body").on('submit',"#addstudent" ,function (e) { 
          e.preventDefault(); 

          $.ajax({ 
           url: $('#addstudent').attr('action'), 
           type: 'POST', 
           data: $("#addstudent").serialize(), 
           success: function(data) { 
            console.log(data); 
           } 
          }); 
         }); 
         });  

        </script> 
関連する問題