【发布时间】:2015-09-19 20:10:09
【问题描述】:
这看起来(并且应该)很简单,但我不知道为什么我的单选按钮的值显示为空
<!DOCTYPE html>
<html>
<body>
<form method="post" action="action_page.php">
<table>
<tr>
<th>Intermediate</th><th>Advanced</th><th>No selection</th>
</tr>
<tr>
<td colspan="3">
<label for="td1">1. Bash</label>
</td>
</tr>
<tr>
<td>
<input type="radio" name="td1" id="td1" value="BashInter"/>
</td>
<td><input type="radio" name="td1" value="BashAdv"/>
</td>
<td><input type="radio" name="td1" value="" /></td>
</tr><tr>
<td colspan="3">
<label for="td1">2. C</label>
</td>
</tr>
<tr>
<td>
<input type="radio" name="td2" id="td2" value="CInter"/>
</td>
<td><input type="radio" name="td2" value="CAdv"/>
</td>
<td><input type="radio" name="td2" value="" /></td>
</tr><tr>
<td colspan="3">
<label for="td1">3. C++</label>
</td>
</tr>
<tr>
<td>
<input type="radio" name="td3" id="td3" value="C++Inter"/>
</td>
<td><input type="radio" name="td3" value="C++Adv"/>
</td>
<td><input type="radio" name="td3" value="" /></td>
</tr></table>
<input type="submit" value="Submit">
</form>
<p>If you click "Submit", the form-data will be sent to a page called "action_page.php".</p>
</body>
</html>
如果在 W3Schools' (ugh) server 上运行,它会正确输出输入。 例如
td1=BashInter&td2=CAdv&td3=
但是,我的服务器,对于print_r($_POST); 的返回
[td1] => [td2] => [td3] =>
无论选择什么。
查看 HTTP 标头确认没有发送任何内容。
表单的所有其他方面都正确发送它们的值。
我已经尝试了许多与值相关的变体,但没有任何改变这样一个事实,即单选按钮实际上似乎没有发送任何数据。
【问题讨论】:
-
@billyonecan 这不是真正的形式(有几千行)。我正在使用 POST 和真实的。
-
在示例代码中添加了 post 方法。请注意,除了单选按钮之外的所有内容都在正确发送数据。
-
所以收音机已发布,但它们的值是空字符串?你确定你没有选择每组中的最后一个选项吗?
-
@billyonecan 我……不这么认为。我只是为最后一个选项提供了一个示例字符串“test”,以确保;但无论选择如何,仍然看起来是空的
-
@billyonecan 我终于找到了罪魁祸首。在所有可能的原因中 - 是 Sessionstorage! sessionStorage 如何导致这个问题,为什么 sessionStorage 会导致这个问题,以及我可以做些什么来阻止 sessionStorage 导致这个问题我还没有确定:/我没有在问题中提到 sessionStorage,因为我看不到它是如何相关的(仍然不相关!)
标签: html forms radio-button