javascript - Yii2:HTML 选择仅显示 1 行
问题描述
我的 Yii 项目中的 HTML 选择有问题。我有隐藏的选择选项,选择国家后,区域选择选项由当前国家显示。选择只显示 1 行,当我在选择中向下滚动时,我可以看到该国家/地区的正确选项。
有人知道问题出在哪里吗?谢谢
这是我的代码:
HTML:
<div class="form-group">
<label class="control-label" for="region_id"><?= Yii::t('vo-card', 'Region') ?></label>
<select class="form-control" name="region_id" id="select-region">
<option value="" disabled selected><?= Yii::t('vo-card', 'Select') ?></option>
<?php foreach ($region as $item) { ?>
<option value="<?= $item->id ?>" data-country="<?= $item->id_cc_number_country ?>" hidden <?= $item->id == $request['region_id'] ? 'selected' : '' ?>><?= $item->region_name ?></option>
<?php } ?>
</select>
<?php if (isset($errors['region_id'])) { ?>
<div class="text-danger"><?= $errors['region_id'] ?></div>
<?php } ?>
</div>
JavaScript:
$(document).on('change', '#select-country', function (event) {
$('#select-region option:not(:disabled)').prop('hidden', true);
$('#select-region option[data-country="' + $(this).val() + '"]').prop('hidden', false);
$('#select-region option').prop('selected', function() {
return this.defaultSelected;
});
event.preventDefault();
});
解决方案
显然问题出在这一行:
$('#select-region option[data-country="' + $(this).val() + '"]').prop('hidden', false);
注意:
$(this).val()
- 这是value
selected 的属性<option>
,但不是data-country
属性的值。并且您需要通过-filter选择所有<option>
s 。data-country
这是您的代码的更正版本:
https ://jsfiddle.net/m5ayf9sx/
推荐阅读
- swift - Swift 编译器错误:枚举案例有一个元组作为关联值,但这里有几种模式
- swift - Swift 字典追加或插入
- eclipse - MQTT 的数据包传送率比 CoAP 高多少?
- sql - 按地区名称(另一组)每组每种族的百分比
- java - 我想重复这个问题,但如果用户输入 -1 我希望程序停止?
- html - 我收到此错误:措辞错误:保留关键字“const”
- android - 为什么材质 FAB 在禁用时不改变颜色?
- javascript - 检查数组中的项目,如果在 JS/HTML 中有打印特定文本
- sql - 数据存在时内连接返回空集
- exception - Hive Exception CloseOperation Failed 的原因是什么:无序响应