- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到目前为止,MDC Web Components 的表现不错,但我在这里停滞的时间太长了。 (JS不强)
mdc-select 以前是非原生的,然后是原生的 HTML select,现在又是非原生的。有一段时间 MDC Web 支持隐藏输入,以便您可以将值传递给服务器。
几乎没有任何文档 - 大多数只是像我这样的用户在 GitHub 上打开问题:
关闭:MDC Select - no longer form input compatible #2221
关闭:[MDC Select] Example in README does send values to the web server #5295
打开:[MDCSelect] Add hidden input element to support HTML forms #5428
我需要为同一页面上的多个选择框设置/更新 MDCSelect 更改时隐藏输入的值...我可以为一个选择框完成它,但不能多个。
这是选择框 HTML:
<div class="mdc-select mdc-select--outlined region-select">
<div class="mdc-select__anchor demo-width-class">
<i class="mdc-select__dropdown-icon"></i>
<div id="demo-selected-text" class="mdc-select__selected-text" tabindex="0" aria-disabled="false" aria-expanded="false"></div>
<div class="mdc-notched-outline">
<div class="mdc-notched-outline__leading"></div>
<div class="mdc-notched-outline__notch" style="">
<label id="outlined-label" class="mdc-floating-label" style="">Region</label>
</div>
<div class="mdc-notched-outline__trailing"></div>
</div>
</div>
<div class="mdc-select__menu mdc-menu mdc-menu-surface demo-width-class">
<ul class="mdc-list">
<li data-value="" disabled="" aria-selected="false" role="option" class="mdc-list-item" tabindex="0"></li>
<li data-value="north" aria-selected="false" role="option" class="mdc-list-item" tabindex="-1">North</li>
<li data-value="east" aria-selected="false" role="option" class="mdc-list-item" tabindex="-1">East</li>
<li data-value="south" aria-selected="false" role="option" class="mdc-list-item" tabindex="-1">South</li>
<li data-value="west" aria-selected="false" role="option" class="mdc-list-item" tabindex="-1">West</li>
</ul>
</div>
<!-- THIS IS THE HIDDEN INPUT THANK YOU -->
<input type="hidden" id="name2" name="input_name2" value="" class="my_mdc-select__value" />
</div>
我已经尝试使用 ID、名称甚至类来定位隐藏的输入。我想我需要某种集成函数、forEach 或循环——尝试在每个选择下面添加 JS,但无济于事。我已经使用其他用户的示例(见下文)但没有成功。 JavaScript 不是我的事,我知道它应该发生什么但不知道使它工作的函数或循环语法等。
我需要确保每个设置/更新都针对与特定选择框关联的正确隐藏输入。
这是我的 JS,适用于一个选择框,但不适用于多个选择框:
// Select Menu
import {MDCSelect} from '@material/select';
const selectElements = [].slice.call(document.querySelectorAll('.mdc-select'));
selectElements.forEach((selectEl) => {
const select = new MDCSelect(selectEl);
select.listen('MDCSelect:change', (el) => {
const elText = el.target.querySelector(`[data-value="${select.value}"]`).innerText;
console.log(`Selected option at index ${select.selectedIndex} with value "${select.value}" with a label of ${elText}`);
// this works but only saves one
document.querySelector('input.my_mdc-select__value').value = select.value;
});
});
这是其他人使用的一些我无法修改/应用的代码(取自上面的链接):
来自 nikolov-tmw:
document.querySelectorAll( '[data-mdc-auto-init="MDCSelect"]' ).forEach( function( sel ) {
sel.My_MDCSelect__Value = sel.querySelector('input.my_mdc-select__value');
if ( null !== sel.My_MDCSelect__Value ) {
sel.addEventListener( 'MDCSelect:change', function( a ) {
if ( sel.MDCSelect ) {
sel.My_MDCSelect__Value.value = sel.MDCSelect.value;
}
} );
}
} );
来自丹尼尔-dm:
<div class="mdc-select">
...
</div>
<input id="pet-select" type="hidden" name="pets">
<script>
const input = document.querySelector('#pet-select');
const select = document.querySelector('.mdc-select');
select.addEventListener('MDCSelect:change', e => {
input.value = e.detail.value;
});
</script>
求助!这个特殊问题自一月份以来就一直存在(人们很久以前就在苦苦挣扎),没有明确的解决方案来帮助非 JS 开发人员实现 MDCSelect 框。提前致谢!
最佳答案
问题出在这里:
document.querySelector('input.my_mdc-select__value').value = select.value;
Document.querySelector将在整个文档中找到第一个匹配元素,因此在您的循环中您始终访问相同的input
元素。
相反,您应该运行 querySelector每个隐藏输入的父元素上的方法,在您的循环中将如下所示:
selectEl.querySelector('input.my_mdc-select__value').value = select.value;
关于javascript - MDC 网站 : mdc-select update hidden input value on change (non-native select box) | JavaScript (JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61238626/
我想知道是否有任何方法可以调用和使用 overflow:hidden 隐藏得很好的东西。 为了阐明我的意思,在 this example我想知道“This is hidden”是div的隐藏部分。 这
如果我们有以下HTML StackOverflow 使用以下 CSS * { margin: 0; padding: 0; } #i { overflow:
我正在使用 jQuery 制作幻灯片,我有几张图片应该一次滑入一张图片。我正在使用宽度与图像宽度相同的 div:80 像素。我使用了 white-space:no-wrap 和 overflow:hi
如果我有一个样式为 overflow: hidden; 的 div,我发现有时键盘操作会导致 div 滚动。而且由于没有滚动条,所以真的没有办法让 div 回到原来的状态。除了指定样式以防止出现这种情
我有一个 UIImageView,在表格单元格中有一个自定义类,它也使用一个自定义类。 UIImageView 作为单元格自定义类的属性连接。 UIImageView 有一个调用方法的 UITapGe
我正在创建一个网站,在一个 div 中我有一个视频,但我不想在移动设备上显示这个视频,所以我使用 hidden-xs 和 hidden-sm,到目前为止一切顺利。 但是,我的问题是,当我使用这些类时,
我对 C++ 可见性属性有疑问。我已阅读 http://gcc.gnu.org/wiki/Visibility但我不太明白它是如何工作的。 我想在我拥有的一些共享库中隐藏可见性。我相信这意味着符号被隐
我通过CSS的草图创建了一个菱形,它位于一个圆圈的左上角。 我为圆圈设置了overflow: hidden。钻石怎么还能触发cursor: pointer? 这是 project 的代码笔. html
这个问题在这里已经有了答案: Shape with a slanted side (responsive) (3 个答案) 关闭 3 年前。
在使用 Angular Material 时,我一直在看到 aria 属性。有人可以向我解释一下 aria 前缀是什么意思吗?但最重要的是我想了解的是 aria-hidden 和 hidden 属性之
我正在阅读有关 aria 使用的一些内容,并遇到了以下文档: Fourth Rule of ARIA Use 。我不清楚的一个部分是: "Applying aria-hidden to a paren
以下是我的简单导航代码。单击右上角的图标时会出现两个 div。我还在顶部使用 :before 实现了这些分区的三 Angular 形提示。对于第一个 div,我设置了 overflow:scroll
input[type=hidden] 和 visibility : hidden; 有什么区别? 最佳答案 第一个是输入元素,第二个是CSS2中的样式。 visibility: hidden; vis
我遇到了一个奇怪的问题,似乎与浏览器相关(IE9 及更低版本与 IE11),但想知道为什么会出现奇怪的行为。 问题描述:我使用 Spring 框架并使用其相关标签库来检索 JSP 上的数据。有一个称为
我在 viewDidLoad 中的两个 UIView 上将 hidden 属性设置为 YES。单击按钮时,它们将设置为 NO,因此将显示它们。如何在每次单击按钮时使这些属性在是/否之间切换? 最佳答案
我正在尝试使用树状列表实现侧边栏。我希望树中的每个元素只填充一行——没有溢出,没有换行/换行。 overflow: hidden; 可能是一个很好的解决方案,但还有另一个要求 - 每行都有一个绝对 d
我想用 overflow: hidden 隐藏一个超出容器的标题: HTML: Heading CSS: div { overflow: hidden; } h1 { transfor
我对 overflow:hidden 和 body 标签有疑问。这是一个小例子 主体版本(不工作) http://jsfiddle.net/5hGSp/13/ DIV 版本(有效)
html 的“隐藏”属性是一个 bool 值,不需要设置值。仅仅存在就足够了。 “aria-hidden”属性怎么样?光有存在感就够了吗?或者它是否需要设置值“true”? 最佳答案 aria-hid
在我的页面上,我有一个导航菜单和两个内容容器。 内容容器使用overflow:hidden 以便一次只有一个子div 显示。 我希望导航链接充当相关内容的激活器,以便在容器中滚动查看。 因此,例如,如
我是一名优秀的程序员,十分优秀!