28

假设这个复选框片段:

<input type="checkbox" value="1">Is it worth?</input>

是否有任何理由value在 HTML 中静态定义复选框的属性?这是什么意思?

4

5 回答 5

28

我希望我能正确理解你的问题。

value 属性定义了一个由 POST 请求发送的值(即您有一个 HTML 表单提交给服务器)。现在服务器获取名称(如果已定义)和值。

<form method="post" action="urlofserver">
    <input type="checkbox" name="mycheckbox" value="1">Is it worth?</input>
</form>

服务器将收到mycheckbox的值1

在 PHP 中,这个 POST 变量存储在一个数组中,$_POST['mycheckbox']其中包含1.

于 2013-01-14T18:05:11.507 回答
11

我只是想对阿德里亚诺席尔瓦的评论发表评论。为了使他描述的内容起作用,您必须在 name 属性的末尾添加“[]”,因此如果我们以他的示例为例,正确的语法应该是:

<input type = "checkbox" name="BrandID[]" value="1">Ford</input>
<input type = "checkbox" name="BrandID[]" value="2">GM</input>
<input type="checkbox" name="BrandId[]" value="3">Volkswagen</input>

然后你使用类似的东西: $test = $_POST['BrandID']; (介意 PHP 代码中 BrandID 之后不需要 [])。这将为您提供一个值数组,数组中的值是勾选的值的复选框。

希望这可以帮助!:)

于 2013-08-09T17:43:35.807 回答
7

一个原因是使用系统中值的易用性。

<input type="checkbox" name="BrandId" value="1">Ford</input>
<input type="checkbox" name="BrandId" value="2">GM</input>
<input type="checkbox" name="BrandId" value="3">Volkswagen</input>
于 2013-01-14T18:31:40.587 回答
4

提交表单时,value如果选中复选框,则将属性中的数据用作表单输入的值。默认值为“开”。

$('form').on('change', update).trigger('change')

function update() {
  var form = $(this)
  form.find('output').text('→ ' + form.serialize())
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <input type="checkbox" name="foo">
  <output></output>
</form>

<form>
  <input type="checkbox" name="foo" checked>
  <output></output>
</form>

<form>
  <input type="checkbox" name="foo" value="1" checked>
  <output></output>
</form>

<form>
  <input type="checkbox" name="foo" value="bananas" checked>
  <output></output>
</form>

于 2016-08-12T09:25:37.317 回答
1

为了快速浏览答案,来自MDN

提交表单时,仅将当前选中的复选框提交给服务器,报告的值为 value 属性的值

这可能会让人感到困惑,因为看到类似的东西 <input type='checkbox' name='activated' value='1'>可能会让人们相信 1 表示真,并且它会被视为已检查,这是错误的。该checked属性本身也仅确定是否应在页面加载时默认选中复选框,而不是当前是否已选中并因此将被提交。

于 2020-06-26T00:04:15.857 回答