【发布时间】:2021-04-03 06:38:03
【问题描述】:
我完全是前端开发的新手,刚刚学习 jQuery。
我对“使用 jQuery ajax 提交 HTML 表单”感到困惑。这是一个简单的例子:
<form class="form" action="" method="post">
<input type="text" name="name" id="name" >
<textarea name="text" id="message" placeholder="Write something to us"> </textarea>
<input type="button" onclick="return formSubmit();" value="Send">
</form>
<script>
function formSubmit(){
var name = document.getElementById("name").value;
var message = document.getElementById("message").value;
var dataString = 'name='+ name + '&message=' + message;
jQuery.ajax({
url: "submit.php",
data: dataString,
type: "PUT",
success: function(data){
$("#myForm").html(data);
},
error: function (){}
});
return true;
}
</script>
如您所见,当我们单击按钮Send 时,函数formSubmit() 将被调用,jQuery.ajax 将完成其工作。它将发送一个类型为PUT的http请求。
但是HTML表单中有一个属性method="post",现在我很困惑。当我们点击按钮时,实际会发生什么? jQuery.ajax 将在 js 函数中发送请求,但 method="post" 会做什么?还是method="post"可以忽略?如果什么都不做,我们可以将属性method设为空:<form class="form" action="" method="">吗?
附加
现在我意识到这个例子中按钮的类型是button,而不是submit。如果我将类型更改为submit并单击它,会发生什么?它会发送两个http请求,一个post请求来自表单,一个put请求来自jQuery.ajax?
【问题讨论】:
-
实际上,如果您使用 jquery ajax,您可以从 HTML 中删除
标签: javascript html jquery ajax forms