2015-08-28 44 views
1

我想使用jQuery發送表單數據到服務器, 我按照這個頁面↓

how do i submit a form using get method in jquery

但不工作,沒有任何窗口警報。 我不知道爲什麼....

我已經導入頭(版本1.11.3)中的jQuery腳本。

<script src="./static/jquery-1.11.3.js" type="text/javascript"></script> 

這是我的腳本。

<script> 
    function test(){ 
      document.getElementById("form_test").submit(function() { 
       $.ajax({ 
        url  : $(this).attr('action'), 
        type : $(this).attr('method'), 
        data : $(this).serialize(), 
        success : function(response) { 
         alert(response); 
        }, 
        error:function(){ 
         alert("error"); 
        } 
       }); 
       return false; 
      }); 
     } 
</script> 

這是我的表單代碼。

<form id="form_test" class="appnitro" method="post" action=""> 
    <div class="form_description"> 
     <p>test.</p> 
    </div>      
    <ul > 
     <li id="li_1" > 
      <label class="description" for="info">info</label> 
      <div> 
       <input id="info" name="info" class="setInfo" type="text" maxlength="16" value=""/> 
       <label id="infoMsg" class="Message"></label><br/> 
      </div> 
     </li>   
     <li class="buttons"> 
      <button type="button" class="mbutton" onclick="test()">submit</button> 
     </li> 
    </ul> 
</form> 

回答

0

test()

document.getElementById("form_test").submit(function() { 
刪除提交處理程序

這不是必需的,因爲當用戶單擊按鈕時正在調用功能test

function test() { 
    var $form = $('#form_test'); 
    $.ajax({ 
     url: $form.attr('action'), 
     type: $form.attr('method'), 
     data: $form.serialize(), 
     success: function (response) { 
      alert(response); 
     }, 
     error: function() { 
      alert("error"); 
     } 
    }); 
    return false; 
} 

我也建議你使用jQuery on()當您使用內聯JS在提交按鈕,無需提交事件處理此綁定事件

$('#form_test').on('submit', function() { 
    $.ajax({ 
     url: $(this).attr('action'), 
     type: $(this).attr('method'), 
     data: $(this).serialize(), 
     success: function (response) { 
      alert(response); 
     }, 
     error: function() { 
      alert("error"); 
     } 
    }); 
    return false; 
}); 
+1

那麼'this'的值是什麼? –

0

你需要有一個表單提交在DOM準備處理

$(function() { 
    $("#form_test").submit(function() { 
     $.ajax({ 
      url: $(this).attr('action'), 
      type: $(this).attr('method'), 
      data: $(this).serialize(), 
      success: function (response) { 
       alert(response); 
      }, 
      error: function() { 
       alert("error"); 
      } 
     }); 
     return false; 
    }); 
}) 

在代碼中,您呼叫按鈕的點擊test方法,它調用form元素註冊的事件處理程序提交功能與回調

+0

我敢肯定你沒注意到'按鈕測試()'點擊 – Tushar

+1

是的,我有...但它是使用jQuery的事件處理程序更好的方法(即避免在使用jQuery時使用內聯處理程序) –

0

。請參見下面的代碼:

<script> 
function test(){ 
     var myForm = document.getElementById("form_test");    
      $.ajax({ 
       url  : $(myForm).attr('action'), 
       type : $(myForm).attr('method'), 
       data : $(myForm).serialize(), 
       success : function(response) { 
        alert(response); 
       }, 
       error:function(){ 
        alert("error"); 
       } 
      }); 
      return false; 

    } 

+0

謝謝!現在可以工作了! – KBKai

+0

很高興聽到! –