form表单中姓名的id必须要设置,下面会需要用attr()改变name的值,以便传到后台对应不同的name字段
<form method="post"id="myform" name="myform">
姓名: <input type="text" name="name" id="name" ><br>
密码: <input type="password" name="password" ><br>
电话号码:<input type="number" name="phone"><br>
性别:<input type="radio" value="男" name="gender"> 男
<input type="radio" name="gender" value="女"> 女<br>
注册类型:<select id="object" name="object">
<option value="0">----请选择身份----</option>
<option value="admin">管理员</option>
<option value="teacher">教师</option>
<option value="parent">家长</option>
<option value="student">学生</option>
</select>
<br/>
</form>
<input type="button" onclick="register();" value="注册">
通过attr()改变input标签的name的属性,ajax的url通过获取object设置跳转到不同的控制层
<script>
function register() {
var object = $('#object').val();
if (object == "admin"){
$('#name').attr('name','adminname');
}else if(object == "teacher"){
$('#name').attr('name','teachername');
}else if(object == "parent"){
$('#name').attr('name','parentname');
}else if(object == "student"){
$('#name').attr('name','studentname');
}
var jsonInfo = $('#myform').serializeObject();
var jsonString = JSON.stringify(jsonInfo);
console.log(jsonString);
$.ajax({
type:'POST',
data:jsonString,
url:"/"+object+"/register?t="+new Date().getTime(),
contentType:"application/json",
success:function (data,type) {
alert(data.msg);
location.href="/"
},
error:function (data) {
alert(data.msg);
}
})
}
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if(o[this.name]) {
if(!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
</script>