一、在HTMl页面的form表单中对disabled的元素的属性和值不会提交到服务器
实例1:
<form action="#" id="form1"> <input type="text" name='name' id="name" value='张三'> <br> <input type="text" name='age' value='13' disabled> <!-- 不能编辑且不会传到服务器 --> <br> <input type="text" name='sex' value='男' readonly> <!-- 不能编辑但会传到服务器 --> <br> <input type="submit"> </form> <script type="text/javascript"> $(function() { $('input[type="submit"]').click(function() { var data = $('#form1').serialize(); console.log(data); }); }); </script>如果对input加入disabled="disabled"或disabled="true"等属性不会传值到服务器 eg: $("#name").attr("disabled", true);
实例2:select标签没有readonly属性,所以在使用disabled的时候需要注意,当前值不会提交到服务器
<form action="#" id="form1"> <input type="text" name='name' value='张三'> <br> <select name="age"> <option value="">==请选择==</option> <option value="15">10</option> <option value="10">15</option> </select> <br> <select name="sex" disabled> <!--disabled不会传到服务器--> <option value="">==请选择==</option> <option value="1" selected>男</option> <!--selected默认选中--> <option value="0">女</option> </select> <br> <input type="submit"> </form> <script type="text/javascript"> $(function() { $('input[type="submit"]').click(function() { var data = $('#form1').serialize(); console.log(data); }); }); </script>
实例3,JQuery表单的序列化
<form action="#" id='from1'> <input type="text" name='name' id="name11" value='张三'> <br> <input type="text" name='age' value='13' disabled> <!--disabled不能被序列化但能js取值--> <br> <input type="text" name='sex' value='男' readonly><!--readonly能被序列化--> <br> <input type="submit"> </form> <script> $(function() { $('input[type="submit"]').click(function() { var data = $('#form1').serialize(); console.log(data); console.log($("#name11").val()); return false; }); }); </script>
按照W3C的规范: 设置为disabled的input将会有下面的限制: - 不能接收焦点 - 使用tab键时将被跳过 - 可能不是successful的
设置为readonly的input将会有下面的限制: - 可以接收焦点但不能被修改 - 可以使用tab键进行导航 - readonly属性只对 type="text" 、 textarea 和 type="password" 有效。 - 可能是successful的 - 只有successful的表单元素才是有效数据,也即是可以进行提交。disabled和readonly的文本输入框只能通过脚本进行修改value属性。
disabled 不会提交到服务器 不能被序列化但能js取值赋值 界面上无法修改 所有控件都有 disabled 属性
readonly 会提交到服务器 能被序列化 能js取值赋值 界面上无法修改 所有控件不一定有 readonly 属性 如 select 下拉框
转载至: https://www.cnblogs.com/tianma3798/p/6210934.html
https://blog.csdn.net/haoaiqian/article/details/70184911