我想在提交表单时向用户发送电子邮件通知。发送所有输入字段值,但不发送复选框值。要从输入框中获取值,我使用{Field label:ID},但对于复选框,它会通过电子邮件发送空值。
我有4个复选框,该字段名为Lisad,ID为11.我不应该使用{Lisad:11}来获取值并通过电子邮件发送吗?
答案 0 :(得分:0)
复选框可以通过以下两种方式之一进行描述:value and checked-ness:
checkbox:
复选框。 您必须使用value
属性来定义此项目提交的值。使用checked
属性指示是否已选中此项。您还可以使用indeterminate
属性指示该复选框处于不确定状态(在大多数平台上,这会绘制一个水平在复选框上划线。)
提交表单时未勾选的复选框do not have their value sent:
HTML规范说未经检查的复选框不成功,因此网页浏览器不会发送它们。不幸的是,这引入了一个问题:如果
Invoice
模型有{{1} },并且在编辑付费发票的表单中,用户取消选中其复选框,不会发送任何付费参数。
Ruby on Rails有一个解决方法,您可以使用它:
为防止这种情况,帮助程序会在复选框之前生成一个辅助隐藏字段。隐藏字段具有相同的名称,其属性模仿未选中的复选框。
这样,客户端只发送隐藏字段(表示未选中复选框)或两个字段。由于HTML规范说键/值对必须以它们在表单中出现的相同顺序发送,并且参数提取得到查询字符串中任何重复键的最后一次出现,这适用于普通表单。