jQuery POST不适用于表单数据提交

时间:2013-11-15 19:52:37

标签: jquery html ajax servlets

以下是代码:

<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方法。为什么呢?

1 个答案:

答案 0 :(得分: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正常工作,请尝试以下方法:

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

使用函数ajaxSubmit定义如:

 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;
 }