mysql的值赋值给表单_手动提交表单,验证通过后把表单信息显示在页面上存入数据库...

这篇博客详细介绍了如何使用JQuery将表格信息转换为可编辑的表单,结合validate插件进行表单验证。在用户编辑后,验证表单数据的有效性,如果验证通过则将更新的信息保存到数据库,同时更新页面显示,无需页面刷新。整个过程涉及元素状态改变、数据提取、表单验证以及Ajax数据提交。
摘要由CSDN通过智能技术生成

手动提交表单,验证通过后把表单信息显示在页面上存入数据库

分类:JQUERY 时间:2013-05-23   已阅读:2355

问题描述:

当点击edit按钮时,表格里的信息变成input,select,textarea形式的,并且原来的信息作为input,select,textarea的value,此时 按钮的样式发生变化,文字也从Edit变成Save, 如果我需要用到

jquery.validate.js插件去验证表单提交的数据是否有效,因为我的 edit 或者 Save 按钮都是同一个input,只是修改了它的样式而已,所以我需要在文字是Save的时候手动的提交 用 $("form").submit();

然后在validate验证里如果验证成功执行 submitHandler里的函数,提交成功以后 需要把修改后的 form表单的值取出来并赋值给相应的地方显示出来。 这个过程也是可以在submitHandler完成的。

我们可以把问题分解下,

1. 点击 Edit按钮,form 表单中信息变成相应 input,select,textarea的value的值

2. 用户做一些编辑操作

3. 验证表单输入的有效性

4. 如果表单验证不通过,会给出体术信息

5. 如果表坛验证通过会执行2个操作,一个是把 用户编辑的信息显示在浏览器上,用户不需要刷新页面,同时会把用户编辑的这些信息存入数据库,更新数据库里的这条信息

以上的思路:

具体代码如下:

$("input#controlTask").live("click", function () {

ddL = $taskDetailColumn.find("dd").length;

if (!$(this).hasClass("orange")) {

$(this).val("Save").addClass("orange");

var oldTextData = [];

for (var i = 0; i < ddL; i++) {

var oldText = $taskDetailColumn.find("dd").eq(i).text();

if (i == 6) { oldText = $taskDetailColumn.find("dd").eq(i).find("span").text(); }

oldTextData.push(oldText);

}

FindPriorities();

$taskDetailColumn.find("dd").eq(0).html('');

//$taskDetailColumn.find("dd").eq(1).html('');

$taskDetailColumn.find("dd").eq(1).html('');

$taskDetailColumn.find("dd").eq(2).html('');

$taskDetailColumn.find("dd").eq(3).html('');

$taskDetailColumn.find("dd").eq(4).html('');

$taskDetailColumn.find("dd").eq(5).html('');

$taskDetailColumn.find("dd").eq(6).html(' Days');

$taskDetailColumn.find("dd").eq(7).html('' + Prioritylist.join("") + '');

$taskDetailColumn.find("dd").eq(8).html(''+oldTextData[8]+'');

$("#add_StartDate,#add_DeadLine").click(function() { WdatePicker({dateFmt:'MM/dd/yyyy'}) ;})

} else {

$("form#formEditTask").submit();

}

})

主要是这句 $("form#formEditTask").submit(); 只需要提交就行,其余的交给的$("#formEditTask").validate函数去处理就行。

验证表单的代码 如下:

/* check deadline */

jQuery.validator.addMethod("deadLineRole", function (value, element, params) {

var __value1 = new Date($("#" + params[0]).val()),

__value2 = new Date(value),

increment = Number($("#" + params[1]).val());

if (__value2 >= __value1 && params[2]) {

$("#" + params[2]).val(Math.floor((__value2.getTime() - __value1.getTime()) / 1000 / 60 / 60 / 24));

};

__value1.setDate(__value1.getDate() + (increment || 0));

return this.optional(element) || __value2 >= __value1;

}, "The value of Deadline is wrong .");

/* check form data */

jQuery.validator.messages.required = "";

$("#formEditTask").validate({

invalidHandler: function(e, validator) {

var errors = validator.numberOfInvalids();

if (errors) {

var message = errors == 1

? 'You missed 1 field. It has been highlighted below'

: 'You missed ' + errors + ' fields. They have been highlighted below';

$("div.error span").html(message);

$("div.error").show();

} else {

$("div.error").hide();

}

},

onkeyup: false,

rules: {

add_StartDate: { required: true },

add_DeadLine: { required: true, deadLineRole: ["add_StartDate", "add_ScheduledWork", "add_ScheduledWork"] },

add_ScheduledWork: { required: true, number: true }

},

submitHandler: function() {

$("div.error").hide();

alert("submit! use link below to go to the other step");

/*验证成功后, 提交数据,并存入到数据库 */

formData = [];

formData.push("{ \"task\": {");

$("input:text,select,textarea",$("#TaskDetailQuickLink dl")).each(function () {

var $this = $(this);

var name = $this.attr("name").replace("add_", "");

switch (name) {

case "Subject":

formData.push("\"Subject\":\"");

formData.push($this.val());

formData.push("\",");

break;

case "Creator":

formData.push("\"Creator\":\"");

formData.push($this.val());

formData.push("\",");

break;

case "Instruction":

formData.push("\"Instruction\":\"");

formData.push($this.val());

formData.push("\",");

break;

case "Executors":

formData.push("\"Executors\":");

formData.push(setServerValue($this.attr("valueList"), false));

formData.push(",");

break;

case "Stakeholders":

formData.push("\"Stakeholders\":");

formData.push(setServerValue($this.attr("valueList"), false));

formData.push(",");

break;

case "StartDate":

formData.push("\"ScheduledStartDate\":");

formData.push(setServerValue($this.val()));

formData.push(",");

break;

case "DeadLine":

formData.push("\"DeadLine\":");

formData.push(setServerValue($this.val()));

formData.push(",");

break;

case "Priority":

formData.push("\"PriorityID\":");

//formData.push(setServerValue($this.val(), false));

formData.push("\""+setServerValue($this.val(), false)+"\"");

formData.push(",");

break;

case "ScheduledWork":

formData.push("\"ScheduledWork\":");

// formData.push(setServerValue($this.val(), false));

formData.push("\""+setServerValue($this.val(), false)+"\"");

formData.push(",");

break;

default:

break;

}

})

formData[formData.length - 1] = formData[formData.length - 1].replace(/,$/, "");

formData.push("} }");

var data = formData.join("").replace(",]", "]");

$.ajax({

url:"/WebCenter/SecuritySite/TaskManagement/TaskService.asmx/CreateTask",

async:"true",

contentType:"application/json",

data:data,

type:"POST",

dataType:"json",

success:function(data){

if (data["d"]["C"] === 0) { showLoadBox($(document.body), data["d"]["M"], 5000); }

else { alert("kkkkkkkkkkk"); }

}

})

},

debug:true

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值