2013-11-15 21 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