jquery.validate和onsubmit()同时使用的方法

最近写了点前端代码,验证form表单的时候用到了jquery validate。这个东西很好用,具体的使用方法就不必啰嗦了。

这个东西主要是用来验证表单数据的格式,有时候虽然格式正确了但是还要保证某些字段的唯一性,就要另外判断了,我用的方法是在form加一个onsubmit事件。

测试的时候发现,只要满足validate验证的格式,onsubmit的判断会被忽略掉。事实上,jquery validate也是在submit的时候开始判断的,并且在onsubmit事件之后,所以onsubmit返回false,只要满足validate的条件仍然会返回true,表单仍被提交。不仅如此,我在script脚本中的submi()在validate验证后会自动执行,也就是说,即使验证不通过,表单仍然可以通过submit()函数自动提交。

这个时候就需要在构造validate规则的时候加上submitHandler。

Read More

jquery.validate自定义验证--成功提示与择要提示

  1. 自定义验证–成功提示

1) 添加选项

1
2
3
4
5
6
7
8
9
10
11
12
errorClass: "unchecked"
validClass: "checked"
errorElement: "span"
errorPlacement: function (errorelement) {
ifelement.parent().find("span[for=""" + element.attr("id") + """]") != null) {
element.parent().find("span[for=""" + element.attr("id") + """]".remove();
}
error.appendTo(element.parent());
},
success: function (label) {
label.removeClass("unchecked").addClass("checked");
},

Read More

如何把订单的每一行以键值形式提交到服务端

业务场景
有一个订单列表,列表的每一行,分别是商品id,商品名称,商品数量,其中商品数量可以修改,修改完毕后提交整个表单。表单结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<table id="productList">
<tr>
<th width=300>菜品</th>
<th width=200>数量</th>
<th width=300>操作</th>
</tr>
<?php foreach($list as $k){ ?>
<tr class="oparea">
<td class="list">
<span class="vegsid" data-id="<?php echo $k['id'];?>"><!--data-id是自定义属性,专门用来存放id-->
<?php echo $k[ 'name'];?>
</span>
</td>
<td class="list">
<input class="num" value="1" maxlength="4">
</td>
<td>
<span class="deldata">移除</span>
</td>
</tr>
<?php }?>
<tr>
<td colspan=7 class="list">
<span class="sub">提交订单</span>
</td>
</tr>
</table>

Read More

Ajax表单提交插件jqueryForm

jQuery Form插件是一个优秀的Ajax表单插件,我们可以非常容易的使用它处理表单控件的值,清空和复位表单控件,附件上传,以及完成Ajax表单提交(不用执行页面跳转)。jQuery Form有两个核心方法ajaxForm()和ajaxSubmit(),本文我们重点介绍ajaxSubmit()的应用。

Read More

Form表单插件jquery.form.js

jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地、无侵入地升级HTML表单以支持Ajax。

jQuery Form有两个核心方法 – ajaxForm() 和 ajaxSubmit(), 它们集合了从控制表单元素到决定如何管理提交进程的功能。

另外,插件还包括其他的一些方法: formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等。

Read More