$("#form").serialize()、$("#form").serializeJSON表单以POST或GET的方式提交大量数据时,没有获取到表单内全部元素;
1、首先保证元素要有name属性,必写;
2、不可设置为元素设置 disabled。
当然,设置为属性为"disabled"时,获取不到元素,可以在提交表单之前先移除disabled属性,比如$("#name").removeAttr(“disabled”);
提交完成后扔停留在提交页面且不允许修改,再把disabled属性加回来就是了,
$("#projectName").attr("disabled", true);
另外,说到disabled,会提到readonly:
disabled和readonly这两个属性有一些共同之处,比如都设为true,则form属性将不能被编辑,往往在写js代码的时候容易混合使用这两个属性,其实他们之间是有一定区别的。
某元素属性disabled设为true,则该表单输入项不能获取焦点,用户的所有操作(鼠标点击和键盘输入等)对该输入项都无效,最重要的一点是当提交表单时,这个表单输入项将不会被提交。
而readonly只针对input(text / password)和textarea有效,disabled对于所有的表单元素都有效,元素readonly属性设置为true,只是不能编辑对应的文本,但是仍然可以聚焦焦点,并且在提交表单的时候,该输入项会作为form的一项提交。
***:diabled可用readonly代替,background-color:#cccccc;加上灰色背景色就可以。
工作中遇到,想起来随便记一下,增加一下记忆