2013-11-15 42 views
1

下面的工作是代碼:jQuery的POST不與表單數據提交

<form id='schema_update' name="input"> 
Schema:<br> 
<input id = 'schema_value' type="text" name="schema"> 
<br> 
<input type="submit" value="Submit"> 
</form> 

而jQuery代碼是:

$("#schema_update").submit(function(event) { 
      String value = $("#schema_value").val(); 
     $.ajax({ 
      type : "POST", 
      url : "Servlet", 
      data : { 
       'mode' : 'Update', 
       'attribute' : 'schema', 
       'value' : value, 
      }, 
      success : function(data) { 
       $("#schema").css("color","red"); 
       $("#schema").html(data); 
      } 
     }); 
}); 

當我輸入一些文字,然後點擊提交按鈕形成。 POST方法未被調用。爲什麼?

+0

是什麼schema_value:

<form id='schema_update' name="input" action="Servlet" method="POST" onSubmit='return ajaxSubmit();'> 

使用功能ajaxSubmit會等被定義? – 2013-11-15 19:58:49

+0

很抱歉忘了添加schema_value。更新它並且仍然不起作用 – injoy

+0

您在成功功能中使用了模式標識,在html中沒有模式標識 – 2013-11-15 20:02:06

回答

0

您必須將表單的方法設置爲POST,否則它將默認爲GET。

<form id='schema_update' name="input" method="POST"> 

您還可以,除非你想讓它發送數據回相同的頁面設置表單的動作。

<form id='schema_update' name="input" action="Servlet" method="POST"> 

編輯:我認爲問題是,爲什麼它的工作原理使用Ajax,但不與普通的HTML表單,對不起。無論如何,這可能無法解決您的jQuery問題,但它會使表單在客戶端的瀏覽器上關閉Javascript時起作用。

爲了讓AJAX工作,試試這個:

function ajaxSubmit() 
{ 
     var value = $("#schema_value").val(); 
     alert('calling ajax'); 
     $.ajax({ 
      type : "POST", 
      url : "Servlet", 
      data : { 
       'mode' : 'Update', 
       'attribute' : 'schema', 
       'value' : value, 
      }, 
      success : function(data) 
      { 
       alert('success from ajax'); 
       $("#schema").css("color","red"); 
       $("#schema").html(data); 
      } 
     }); 
     return false; 
} 
+1

誰低估了這一點,請解釋你的問題。因爲我很確定它只是讓你感到高興。 – developerwjk

+0

我不認爲這是OP想要的。 – thenewseattle