我编写了以下代码来处理JQuery中的表单提交
$('#registration-form').on('submit',function(e){
e.preventDefault();
var details = $('#registration-form').serialise();
$.post('/newreg',details,function(data){});
});
我注意到上面的代码如果我声明HTML表单如下:
<form id="registration-form" action="/newreg" method="post">
但如果我不在表格标签
中提供动作和方法,那么它是行不通的<form id="registration-form">
Haven我在JQuery中已经提到了表单的事件处理程序,操作和方法?在HTML表单标签中再次提及相同的内容是不是多余的?
答案 0 :(得分:0)
我还没有在JQuery中提到过表单的事件处理程序,操作和方法吗?
你有,但你可以用JavaScript阅读它们并具有更通用的功能。
$.ajax({
url: this.action,
method: this.method,
data: $(this).serialize()
}).done(function (data, textStatus, jqXHR) { });
在HTML表单标记中再次提及相同的内容不是多余的吗?
是的,但这不一定是坏事。
请参阅the dictionary:
工程(组件)不是运行所必需的,但在另一组件发生故障时包括在内。
如果您正在编写高质量,强大的代码,则需要在系统中具有冗余。 Javascript does fail所以以unobtrusive的方式编写它是最佳做法。
(这里的重点是正确连接的表单,而不是JS中重复的值。请参阅答案的顶部以了解如何避免重复。)
答案 1 :(得分:-1)
您可以尝试使用out动作或方法声明的这个ajax请求代码
$('#registration-form').on('submit',function(e){
e.preventDefault();
var details = $('#registration-form').serialise();
$.ajax({
url : '/newreg',
data : details,
type : 'post',
function : success(data){
console.log(data);
},
function : error(data){
console.log(data);
}
});
});