以下是代码:
<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 :(得分: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;
}