为啥没有在请求正文中发送禁用的输入字段? [复制]

Posted

技术标签:

【中文标题】为啥没有在请求正文中发送禁用的输入字段? [复制]【英文标题】:Why doesn't a disabled input field get sent in the request body? [duplicate]为什么没有在请求正文中发送禁用的输入字段? [复制] 【发布时间】:2018-03-27 17:50:53 【问题描述】:

我有以下表格:

<form class="form-horizontal" role="form" action="/updatedetails" method="POST">
  <input type="hidden" name="_csrf" value="_csrfToken">
  <div class="form-group">
    <label for="fieldUsername" class="col-sm-2 control-label">Username:</label>
    <div class="col-sm-4">
      <input type="text" disabled class="form-control" id="fieldUsername" name="username">
    </div>
  </div>
  <!-- more content -->

用户名输入文本字段的值是在页面加载时由jQuery设置的:

$('#fieldUsername').val(username);

jQuery 似乎可以工作,因为我可以在文本字段中看到用户名字段,尽管它已被禁用。

我的问题是,当我发布表单时,为什么请求正文中不包含用户名?所有字段都包括在内。这是否意味着请求正文中不包含禁用字段?

【问题讨论】:

将禁用更改为只读 【参考方案1】:

此字段未发送,因为它已被禁用。

你应该把它改成readonly

问候

【讨论】:

你是对的!! 老兄 - 你能删除你的答案,这样我就可以删除我的问题了吗?每个人都给我-1!

以上是关于为啥没有在请求正文中发送禁用的输入字段? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 HTML 输入字段中禁用复制粘贴? [复制]

为啥请求中没有发送来自 $http GET 的数据? [复制]

即使我使用 API Post 请求发送数据,为啥 req 正文是 [重复]

为啥我的 http 请求正文没有传输到服务器?

Safari:在输入时禁用表单提交? [复制]

为啥提交ajax请求时请求随机为空?