c# - 表单内的多个选择列表
问题描述
我有一个这样的嵌套列表:
- 简介 (ID: 1)
- 字符串介绍:
- “曾几何时”,
- “他叫杰克”,
- “欢迎”,
- “时间飞逝”
- 图片ID简介:
- 1、
- 6、
- 123
- 字符串介绍:
- 第 1 章(编号:2)
- 第 1 章中的字符串:
- “随着时间的推移”,
- “老麦当劳有个农场”
- 第一章图片ID:
- 13,
- 566,
- 第 1 章中的字符串:
- 第 2 章(编号:3)
- 第 2 章中的字符串:
- “某某某某”,
- “最后”,
- “我古斯坦洛斯巴科斯”
- 第2章图片ID:
- 1、
- 63,
- 1523
- 第 2 章中的字符串:
我希望能够选择无、一个或多个字符串、无、一个或多个图片 ID 并作为表单输入提交。
我已经尝试过的:
输入字段 + 按钮
<input type="hidden" name="strings" value="StringsInChapter"><br>
<button type="submit" value="Submit">Add</button>
但是如果有很多特征,那么有几十个按钮“添加”,视图只是被它们淹没,看起来很糟糕。
选择 + 选项
<select name="CharacteristicsIntro" multiple>
<option value="string1">"Once upon a time"</option>
<option value="string2">"Welcome"</option>
<option value="pictureId1">1</option>
<option value="pictureId6">6</option>
</select>
使用该选项会出现一个框:
这看起来不太好,而且视图再次被这些框淹没。此外,在这种情况下滚动非常不舒服。我希望所有内容都显示在视图上。
我的目标有点接近第二个选项,但没有带有滚动按钮的周围框。我想要实现的是,用户只能看到我的嵌套列表,没有按钮。用户选择多行,并且每个选择信息都保存在HttpContext.Session
. 然后用户可以转到类似购物车的地方,其中所有选择都显示在表格中,单击“提交”按钮并通过邮件将信息发送到服务器。我怀疑没有 JS 就没有办法做到这一点,但仍然可能有任何关于如何以简单的方式做到这一点的建议?
下图大致代表了想要的输出:
因此,每个馅饼都有名称、价格、长、短描述和星期标志。用户可以选择饼图的多个特征或无特征,这些特征在用户点击时会改变颜色(其他行为场景也是可能的,这只是一个示例)并添加到会话上下文中。如果用户再次点击,颜色将恢复正常,并且该项目将从会话上下文中删除。这个想法非常接近正常的购物车行为,但没有使用复选框或按钮。
提前致谢!
解决方案
我不确定在简单的 HTML 中是否很容易做到这一点。绝对需要一些 JS 工作。但是,如果您使用某种语言 C# 执行此操作。在 razor(.cshtml) 中有 @Html.ListBoxFor(m => m.SelectedTags, new MultiSelectList(Model.Tags, "TagID", "Tag"), null)。否则这将对您有所帮助,这也是一个 JS 插件,用于获取数据并将其发送到 servere。https://select2.org/searching (尝试多选示例。)
推荐阅读
- antlr - 当我收到“输入时没有可行的替代方案”错误时,如何调试 Antlr 语法?
- amazon-web-services - 将无服务器应用程序部署到 docker
- javascript - 切换到日期选择器并单击下个月
- excel - 查找多列的匹配单元格值并发送有关匹配信息的邮件
- internet-explorer - 有没有更优雅的方式来使用 AutoIt 获取 Internet Explorer 版本
- shopify - 当 URL 中存在 Shopify 转换跟踪变量时如何运行代码?
- javascript - 选择选项值添加到查询字符串
- latex - 乳胶皮警察
- dataframe - “警告:以冒号作为行的索引将在未来创建一个副本”在 Julia 中使用 DataFrames
- jquery - 隐藏标题中的引号