假设此复选框片段:
<input type="checkbox" value="1">Is it worth?</input>
有没有理由静态定义HTML中复选框的value
属性?这是什么意思?
答案 0 :(得分:21)
我希望我理解你的问题。
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}}数组中。
答案 1 :(得分:8)
我只想对Adriano Silva的评论发表评论。 为了得到他描述的工作,你必须在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之后不需要[])。 这将为您提供一组值,数组中的值是勾选值的复选框。
希望这有帮助! :)
答案 2 :(得分:6)
一个原因是使用系统中值的易用性。
<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>
答案 3 :(得分:3)
提交表单时,如果选中该复选框,则value
属性中的数据将用作表单输入的值。默认值为“on”。
$('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>
答案 4 :(得分:0)
为了快速浏览答案,请从MDN
提交表单时,仅将当前选中的复选框提交给服务器,并且报告的值是value属性的值
这可能会令人困惑,因为看到类似
<input type='checkbox' name='activated' value='1'>
可能导致人们相信1表示正确,它将被视为已选中,这是错误的。 checked
属性本身也仅确定是否应在页面加载时默认选中该复选框,不当前是否已选中并因此将其提交。