【问题标题】:jQuery POST doesn't work with form data submissionjQuery POST 不适用于表单数据提交
【发布时间】:2013-11-15 19:52:36
【问题描述】:

下面是代码:

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

【问题讨论】:

  • 什么是 schema_value ?
  • 抱歉忘记添加 schema_value。更新了还是不行
  • 你在成功函数中使用了schema id,html中没有schema id
  • 还要确保输入正确的 url 地址
  • success : function(data) { alert(data); } 检查是否执行

标签: jquery html ajax servlets


【解决方案1】:

您必须将表单的方法设置为 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;
 }

【讨论】:

  • 谁反对这个,请解释你的问题。因为我很确定这只是因为你很高兴。
  • 我认为这不是 OP 想要的。
猜你喜欢
  • 2016-09-05
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
相关资源
最近更新 更多