HTML表单元素中disabled的元素的值不会提交到服务器

一、在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

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值