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

1.表单元素中disabled的元素的值不会提交到服务器,后台获取的值为null

<form id="myForm" action="#" method="post">

  <input name="username" disabled="disabled" />  

  <input type="submit" value="提交"/>

</form>

在form表单里,如果对input加入disabled="disabled"或disabled="true"等属性,form表单提交的时候,就不会传值到后台。

 

2.原因:在HTML页面的某元素加入了disable的属性,那么这个元素只是单单的去给用户去显示,当表单提交时,这个元素不会提交给后台去处理.所以当元素加入了disabled属性,后台是无法得到这个属性的值.

3.解决方法:

  A.再写一个隐藏属性,一个用于显示,一个用于传值。

  B.<input name="username" readonly="readonly" />  设置只读

  可用readonly代替,background-color:#cccccc;加上灰色背景色就可以达到disable的效果

  C.在form表单提交时利用js/jq将disabled属性修改

//js
document.getElementById("username").disabled="";
//jq
$("#username").attr("disabled",false);

  D.disable属性的值用js/jq获取,使用参数形式传递

转载于:https://www.cnblogs.com/57rongjielong/p/7906800.html

当HTML `<form>` 表单中的`<input>`元素设置了`disabled`属性后,该输入字段将不再接收用户的输入,并且在用户提交表单时,浏览器通常不会将这个字段的包含在请求数据中。如果你需要在后台处理这个字段的,虽然前端无法直接获取,但仍可以采取以下几种策略: 1. **服务器端处理**:通过JavaScript,在表单提交前,你可以临时获取并存储已禁用输入框的,然后发送到服务器。例如,使用`document.getElementById('disabledInput').value`获取,然后添加到其他未禁用的表单字段中再提交。 ```javascript let disabledValue = document.getElementById('disabledInput').value; // 将disabledValue附加到其他非禁用的input元素或其他合适的隐藏字段(hidden input)上 document.getElementById('otherInput').value += disabledValue; ``` 2. **POST请求模拟**:如果表单有其他可操作的非禁用输入,可以创建一个新的隐藏字段或者`<button type="submit">`标签,触发点击事件并手动构造POST请求,包括禁用输入的。 3. **使用AJAX**:可以使用如jQuery的`$.ajax()`方法,异步提交表单,同样可以将禁用输入的包含在请求中。 4. **改变表单结构**:如果不是必须,考虑在设计阶段就避免使用`disabled`状态,而是在需要的时候暂时隐藏这些输入,然后在需要获取它们的地方显示出来。 无论哪种方法,都需要注意安全性和用户体验,特别是处理用户隐私时要谨慎。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值