HTML 表单中的选择和复选框值是不是支持非拉丁字符?

Posted

技术标签:

【中文标题】HTML 表单中的选择和复选框值是不是支持非拉丁字符?【英文标题】:Do select and checkboxes values, in HTML forms, support non latin characters?HTML 表单中的选择和复选框值是否支持非拉丁字符? 【发布时间】:2021-06-28 17:26:44 【问题描述】:

我在网络表单中有以下代码:

<select name=“selectyourpreference“>
  <!--first option-->
  <option value="audiobook">Audiobook for listening</option>
  <!--second option-->
  <option value="option_select_001">Deluxe Book First Edition</option>
  <!--third option-->
  <option value="Canción en español">Canción en español</option>
</select>

当用户将在表单结果中看到的是 VALUE 而不是呈现的字符串文本。因此,建议 VALUE 和要显示的字符串使用相同的字符串,对吗?

对于第一个选项,没问题,因为许多针对英语使用者的教程,使用的字母都可以,但不幸的是,在编程中,很多时候只允许使用拉丁字符。

但是,如果用户选择第二个选项,他将看到:“option_select_001 是您选择的选项”,但这对用户没有任何意义。在表格中,他可能已经阅读了“豪华书籍第一版”。该值应该具有相同的字符串,对吧?

对于第三个选项,我做了“正确使用”,值和显示的字符串具有“相同的字符串”=“Canción en español”并且它有效;但是这有非拉丁字符,例如 /ó/ 和 /ñ/ 中的附件(听起来像 /gn/)。

那么,在我的测试中,第三个选项有效,这是否意味着 html 中的 VALUE 属性允许所有类型的字符?还是只有扩展的拉丁字符?我的询问也延伸到复选框中的值。

我更喜欢使用这个冗长的解释,以避免在不知道我询问的真实背景的情况下做出一般性回答,例如是、否。

【问题讨论】:

如果您的页面是 UTF8 并且您的服务器需要 UTF8,则所有 HTML 字段都支持任何语言 【参考方案1】:

这完全取决于所选的字符集(编码)。如果您将文件保存为 UTF-8,将 html 元字符集设置为 utf-8,它将在 javascript 中运行。 如果您需要使用 php 发布表单或将其保存到数据库中,您可能还需要为其设置字符集。使用 mysql 时,您可能需要在 db 连接中指定编码,并且还需要设置表/列的正确编码。 对于与字符串具有相同值的问题 - 它很大程度上取决于用例。如果您打算使用 javascript 显示用户选择的内容,则不需要相同,因为您可以使用方法 innerHTML() 获取显示的字符串。您还可以在 html 中添加自定义属性,例如 data-value"Supēr optíon",然后获取此属性的值(如果您想向字符串或类似内容添加图标,这很有用)。 如果您打算使用数据库来存储每个选择框的选项并存储用户的答案,我建议您创建一个映射表。

【讨论】:

有用的回复。它把我引向了别的东西。如果我使用 value ="Supēr option with a very long text",对我来说,保存在数据库中的字符串太长;如果我想创建一个简短的版本,比如缩写,但只对我有效,比如“longTxt”。我可以使用&lt;data-value="longTxt" value ="Supēr optíon with a very long text"&gt;,是为了那个吗?或者只是一个数字&lt;data-value= "0057"&gt;,哦...!我知道用户选择了哪个值(“Supēr option with a very long text”),因为这些选项可能比示例更长。

以上是关于HTML 表单中的选择和复选框值是不是支持非拉丁字符?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从 HTML 表单(复选框)发布多个“值”?

验证模板表单中的复选框列表(不是反应式表单)Angular 2

如何知道是不是选中了表单中的多个复选框并将值插入数据库表c#

如何设置表单元素的只读和禁用属性

当数组mysql查询中的复选框值时检查php表单?

ASP表单中复选框如何赋值