jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的Jörn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。

标题冠名MVC其实跟MVC没多大关系了。。 目前只是写的前台,请求的都是后台给的Json数据。

逻辑比较复杂的Form绑定起来比较麻烦,这些都是要自己写代码。而简单的我们可以写一个通用的进行处理。不需要反复的 xxx.Text = "xxx" ..
MVC有自己的自动映射功能,我们这里用jQuery来遍历Controls进行绑定。

如果用过asp开发过系统的人都知道以前取表单的值都是request.form("controlName"),用到的是name而不是id。

所以我们的表单在制作的时候元素的Name值不能没有。 为了能够写通用的方法,我们约定所有的元素的name 是 "cName" 格式 ,"c"+"字段名",id自己随便。
由于Js的Dictionary区分大小写,所以我们这些名字也对大小写敏感,包括上一节的列表绑定都是这样。

  1. $.fn.bindForm = function(model) {
  2. if (model == undefined || model == null) {
  3. return;
  4. }
  5. var formId = this.attr("id");
  6. $("input,textarea,select", "#" + formId).each(function() {
  7. var cname = $(this).attr("name");
  8. var cid = $(this).attr("id");
  9. if (cname == "")
  10. return;
  11. if (cid == "") {
  12. cid = $(this)[0].tagName + "[name='" + cname + "']";
  13. $(this).attr("id", cname);
  14. } else
  15. cid = "#" + cid;
  16. $(cid).bindControl(model[cname.replace("c", "")], formId);
  17. });
  18. return this;
  1. $.fn.bindControl = function(value, formId) {
  2. if (value =http://www.chonggou.net/= undefined)
  3. return this;
  4. value = http://www.chonggou.net/value.toString();
  5. formId = formId || "";
  6. if (formId != "")
  7. formId = "#" + formId + " ";
  8. switch (this.attr("type")) {
  9. case "select-one": //DropDownList
  10. //this[0].selectedIndex = 0;
  11. //$("option[value='http://www.chonggou.net/" + value + "']", this).attr("selected");
  12. var isSelected = false;
  13. this.children().each(function() {
  14. if (this.value =http://www.chonggou.net/= value) {
  15. this.selected = true;
  16. isSelected = true;
  17. return;
  18. }
  19. });
  20. if (!isSelected)
  21. this[0].selectedIndex = 0;
  22. break;
  23. case "select-multiple": //ListBox
  24. this.children().each(function() {
  25. var arr = value.split(',');
  26. for (var i = 0; i < arr.length; i++) {
  27. if (this.value =http://www.chonggou.net/= arr) {
  28. this.selected = true;
  29. }
  30. }
  31. });
  32. break;
  33. case "checkbox": //CheckboxList
  34. //单选
  35. if (value.indexOf(',') == -1) {
  36. $(formId + "input[name='" + this.attr("name") + "']").each(function() {
  37. if (this.value =http://www.chonggou.net/= value) {
  38. $(this).attr("checked", true);
  39. return;
  40. }
  41. });
  42. }
  43. //多选
  44. else if (this.attr("type") == 'checkbox') {
  45. var arr = value.split(',');
  46. for (var i = 0; i < arr.length; i++) {
  47. $(formId + "input[name='" + this.attr("name") + "']").each(function() {
  48. if (this.value =http://www.chonggou.net/= arr) {
  49. this.checked = true;
  50. }
  51. });
  52. }
  53. }
  54. break;
  55. case "radio": //RadioButtonList
  56. $(formId + " input[name='" + this.attr("name") + "']").each(function() {
  57. if (this.value =http://www.chonggou.net/= value) {
  58. this.checked = true;
  59. return;
  60. }
  61. });
  62. break;
  63. default: //Normal
  64. this.val(value);
  65. break;
  66. }
  67. return this;
  68. }

绑定表单就显得比较容易了。

  1. $("#form1").bindForm(<%=Json(ViewData["model"])%>);

简单的一句话,就自动把值绑定了。

绑定一个控件也很容易

  1. $("#controlId").bindControl(value);

其实在实际开发中,我们会经常碰到 级联的DropDownList , 这样在绑定的时候 我们还要对具体的Control 执行绑定,并且trigger他的event。 这个叫双向绑定,目前还没做成自动化。

文/麦子|君子兰

重构网专注于 HTML+CSS 整体解决方案

来源:http://www.chonggou.net/show/969.html

jQuery MVC实现表单数据绑定相关推荐

  1. Spring MVC和JQuery用于Ajax表单验证

    在本教程中,我们将看到如何使用Ajax和Spring MVC和JQuery在服务器端验证表单. Spring MVC为通过注释驱动的配置采用Ajax提供了非常方便的过程. 我们将使用此注释驱动的配置以 ...

  2. Spring MVC的表单控制器——SimpleFormController .

    http://blog.csdn.net/rj042/article/details/6907274 年7月微软MVP申请开始啦!           CSDN十大风云博客专栏评选结果公布! Spri ...

  3. Spring MVC:表单处理卷。 2 –复选框处理

    很难想象现代Web应用程序中没有表单复选框的情况. 在之前的一篇文章中,我写了有关Spring MVC中的表单处理的文章 ,作为本系列文章的续篇,我将写有关Spring MVC表单的文章,尤其是关于复 ...

  4. mvc ajax提交html标签,Mvc提交表单的四种方法全程详解

    Mvc提交表单的四种方法全程详解 2019-01-05 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了Mvc提交表单的四种方法全程详解,编程之家小编觉得挺不错的 ...

  5. 中input标签赋值_Java程序员:Spring MVC JSP表单标签示例

    Spring MVC的表单标签为Java程序员提供了许多额外的支持.例如数据绑定,允许自动设置数据并从Java对象中检索数据. 从2.0版本开始,Spring提供了一组全面的数据绑定感知标记,用于在使 ...

  6. Spring MVC JSP 表单标签教程

    在本教程中,我们将通过一个示例讨论所有与Spring MVC相关的JSP表单标签. 在本教程中,我们将使用下面重要的弹簧MVC表单标签进行讨论: 表单标签 文本字段标签 选择标签 复选框 无线电盒 密 ...

  7. Spring MVC与表单日期提交的问题

    Spring MVC与表单日期提交的问题 spring mvc 本身并不提供日期类型的解析器,需要手工绑定, 否则会出现非法参数异常. org.springframework.beans.BeanIn ...

  8. jQuery 重置/reset()表单

    前言 jQuery v3.5.1 jQuery 重置/reset()表单 jQuery中是没有reset()方法的,不过是一种间接的方法 $('#myform')[0].reset(); 也就是通过调 ...

  9. 自己编写jQuery插件之表单验证

    自己编写jQuery插件之表单验证 吐个嘈先:最近状态不咋滴,真是什么都不想干,不想上班,做什么都没动力,觉得没意思.不想这样,不想这样,快让这种情绪消失吧,忽忽.... 表单验证在项目中用的还是比较 ...

最新文章

  1. Altium Designer批量把一些元件从顶层换到底层
  2. 【数理知识】方程一阶二阶及常用词语含义
  3. 92. Leetcode 63. 不同路径 II (动态规划-路径规划)
  4. Nginx通过端口号区分虚拟机
  5. 第10章:项目沟通管理和干系人管理-章节重点
  6. 切换ip下的sql server用户权限丢失_Zabbix_server高可用之文件同步
  7. 计算机专业表白文案,深情表白文案40句
  8. 如何提高安卓代码的质量和语法
  9. proxychains-ng 工作原理分析
  10. Java-Set、Map
  11. TSC TTP-244 Pro标签打印机安装说明
  12. Android 高德地图搜索功能相关
  13. 安装配置ELK、安装配置ElasticSearch7.13、安装配置Kibana7.13、安装配置Logstash7.13、ElasticSearch7.13安装中文分词器
  14. php写抢红包,红包生成函数(微信抢红包)
  15. 《武则天正传》读后感
  16. 关于Amazon AWS —— 免费的午餐不好吃
  17. efi启动修复linux引导文件夹,一次修复linux的efi引导的集中方法总结记录
  18. python selenium 不打开浏览器_selenium+python自动化测试--解决无法启动IE浏览器及报错问题...
  19. 深入理解volatile关键字---缓存一致性原理
  20. 第7.5节 揭开Python类中self的面纱

热门文章

  1. 无领导群面中,有哪些评分标准?(二)
  2. 查找算法之平衡查找树
  3. 百宝云ERP管理系统行业案例
  4. 西门子PLC200smart (一)
  5. 学习使用XMind——绘制计算机网络概述的思维导图
  6. 程序是如何写出来的?
  7. 【空间数据库】传统数据模型(层次、网状、关系)和空间数据模型详解
  8. 北京内推 | OPPO研究院语音语义研究部招聘NLP研究型实习生
  9. mysql三级分区,MySQL3-分区与分表
  10. 《世界上最简单的会计学》