【发布时间】:2017-06-01 10:05:41
【问题描述】:
<a class="btn btn-info btn-select btn-select-light">
<input type="hidden" class="btn-select-input" id="" name="shopcollection"
value="" required="required"/>
<span class="btn-select-value">Select Shop</span>
<span class='btn-select-arrow glyphicon glyphicon-chevron-down'
required="required"></span>
<ul>
<li>example1</li>
<li>example2</li>
<li>example3</li>
</ul>
</a>
$(document).ready(function () {
$(".btn-select").each(function (e) {
var value = $(this).find("ul li.selected").html();
if (value != undefined) {
$(this).find(".btn-select-input").val(value);
$(this).find(".btn-select-value").html(value);
}
});
});
$(document).on('click', '.btn-select', function (e) {
e.preventDefault();
var ul = $(this).find("ul");
if ($(this).hasClass("active")) {
if (ul.find("li").is(e.target)) {
var target = $(e.target);
target.addClass("selected").siblings().removeClass("selected");
var value = target.html();
$(this).find(".btn-select-input").val(value);
$(this).find(".btn-select-value").html(value);
}
ul.hide();
$(this).removeClass("active");
}
else {
$('.btn-select').not(this).each(function () {
$(this).removeClass("active").find("ul").hide();
});
ul.slideDown(300);
$(this).addClass("active");
}
});
$(document).on('click', function (e) {
var target = $(e.target).closest(".btn-select");
if (!target.length) {
$(".btn-select").removeClass("active").find("ul").hide();
}
});
我正在尝试这样做,因此用户必须选择其中一个元素(示例 1),但是我所需的代码不起作用,因此用户可以绕过下拉列表。我已经包含了下拉代码(顶部)和下拉 javascript 文件(底部),有什么提示吗?
【问题讨论】:
-
列表和跨度都不是表单控件。他们不允许用户首先选择任何东西。你可能有一些 JavaScript 让它们像表单控件一样工作,但你忘了提到这一点。如果您希望它们像表单控件一样执行输入验证,那么您需要添加更多 JavaScript 来实现这些功能。
-
我已经包含了js文件,请问有没有需要下拉列表?