使用jquery从列表框中获取某个下拉列表中的第一个项目
本文关键字:下拉列表 项目 第一个 获取 jquery 列表 使用 | 更新日期: 2023-09-27 18:29:34
我有一个包含多个下拉列表和一个列表框的表单,表单末尾是一个"确认页面",显示输入的所有数据。我遇到的问题是,列表框允许用户选择多个项目当我实现jquery来处理这个问题时,它也适用于下拉框。
这会导致确认页面显示"1.Mr",而不是例如称呼下拉框中的"Mr"。
但是列表框项目显示正确,下面是我的jquery。。。
var displayConfirm = function () {
$('.display-value', form).each(function () {
var input = $('[name="' + $(this).attr("data-display") + '"]',form);
if (input.is(":text") || input.is("textarea")) {
$(this).text(input.val());
} else if (input.is("select")) {
var html = '<ol>';
input.find('option:selected').each(function () {
html += '<li>' + $(this).text() + '</li>';
});
html += '</ol>';
$(this).html(html);
}
});
};
有没有一种方法可以改变为包括。。
else if (input.is("select") && input.val() < 1 ) {
感谢
Listbox辅助对象被呈现为<select multiple="multiple">
。因此,要选择正确的值,必须检查所找到的select标记中的multiple属性。
$(input.is('select')){
if (input.attr('multiple') == "multiple") {
var html = '<ol>';
input.find('option:selected').each(function () {
html += '<li>' + $(this).text() + '</li>';
});
html += '</ol>';
$(this).html(html);
} else {
$(this).text(input.val())
}
}
理想情况下,您还可以丢失else条件,使其成为一个更通用的条件,在该条件下,您不检查任何其他类型。因此,代码的更新版本将看起来像这个
if (input.is("select") && input.attr('multiple') == "multiple") {
var html = '<ol>';
input.find('option:selected').each(function () {
html += '<li>' + $(this).text() + '</li>';
});
html += '</ol>';
$(this).html(html);
} else {
$(this).text(input.val());
}
你可以在这里找到一把正在工作的小提琴。