当前位置: 首页 > 知识库问答 >
问题:

如何从选定的li中获取文本值,并通过js将其传递给另一个li中的输入

宰父跃
2023-03-14

null

		$(document).ready(function () {
    function create_custom_dropdowns() {
			$('select').each(function (i, select) {
				if (!$(this).next().hasClass('dropdown')) {
					$(this).after('<div class="dropdown ' + ($(this).attr('class') || '') + '" tabindex="0"><span class="current"></span><div class="list"><ul></ul></div></div>');
					var dropdown = $(this).next();
					var options = $(select).find('option');
					var selected = $(this).find('option:selected');
					dropdown.find('.current').html(selected.data('display-text') || selected.text());

					if ($(this).hasClass('area')) {
						dropdown.find('ul').append('<li class="option"><input id="displayValue" class="area-ft" type="text" name="text" placeholder="Min"> <input id="idValue" class="area-ft" type="text" name="text" placeholder="Max"> </li>')
					}
					options.each(function (j, o) {
						var display = $(o).data('display-text') || '';
						dropdown.find('ul').append('<li class="option ' + ($(o).is(':selected') ? 'selected' : '') + '" data-value="' + $(o).val() + '" data-display-text="' + display + '">' + $(o).text() + '</li>');
					});
				}
			});
		}
	
		$('.area').on('change', function () {
			document.getElementById('displayValue').value = this.options[this.selectedIndex].text;
			document.getElementById('idValue').value = this.options[this.selectedIndex].text;
		})

		$(".box1").change(function () {
			var selected = $(this).find("option:selected").text();
			$(".area-ft").val(selected);
			if (selected === "0") {
				$(".area-ft").show();
			} else {
				$(".area-ft").hide();
			}
		});

		// Open/close
		$(document).on('click', '.dropdown', function (event) {
			$('.dropdown').not($(this)).removeClass('open');
			$(this).toggleClass('open');
			if ($(this).hasClass('open')) {
				$(this).find('.option').attr('tabindex', 0);
				$(this).find('.selected').focus();
			} else {
				$(this).find('.option').removeAttr('tabindex');
				$(this).focus();
			}
		});
		// Close when clicking outside
		$(document).on('click', function (event) {
			if ($(event.target).closest('.dropdown').length === 0) {
				$('.dropdown').removeClass('open');
				$('.dropdown .option').removeAttr('tabindex');
			}
			event.stopPropagation();
		});
		// Option click
		$(document).on('click', '.dropdown .option', function (event) {
			$(this).closest('.list').find('.selected').removeClass('selected');
			$(this).addClass('selected');
			var text = $(this).data('display-text') || $(this).text();
			$(this).closest('.dropdown').find('.current').text(text);
			$(this).closest('.dropdown').prev('select').val($(this).data('value')).trigger('change');
		});

		// Keyboard events
		$(document).on('keydown', '.dropdown', function (event) {
			var focused_option = $($(this).find('.list .option:focus')[0] || $(this).find('.list .option.selected')[0]);
			// Space or Enter
			if (event.keyCode == 32 || event.keyCode == 13) {
				if ($(this).hasClass('open')) {
					focused_option.trigger('click');
				} else {
					$(this).trigger('click');
				}
				return false;
				// Down
			} else if (event.keyCode == 40) {
				if (!$(this).hasClass('open')) {
					$(this).trigger('click');
				} else {
					focused_option.next().focus();
				}
				return false;
				// Up
			} else if (event.keyCode == 38) {
				if (!$(this).hasClass('open')) {
					$(this).trigger('click');
				} else {
					var focused_option = $($(this).find('.list .option:focus')[0] || $(this).find('.list .option.selected')[0]);
					focused_option.prev().focus();
				}
				return false;
				// Esc
			} else if (event.keyCode == 27) {
				if ($(this).hasClass('open')) {
					$(this).trigger('click');
				}
				return false;
			}
		});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="b-drop listing-drops">
<form class="serc">
<select name="zone" class="zone ">
<option value="volvo">Bangalore East</option>
<option value="saab">East</option>
<option value="fiat">West</option>
<option value="audi">South</option>
</select>
<select name="zone" class="locality">
<option value="volvo">All Localities</option>
<option value="saab">East</option>
<option value="fiat">West</option>
<option value="audi">South</option>
</select>
<select name="zone" class="area box1">
<option value="volvo">Area</option>
<option value="saab">East</option>
<option value="fiat">West</option>
<option value="audi">South</option>
</select>
<button type="button" class="search button button--aylen">Find Properties</button>
<button type="button" class="clear-filter">Clear Filters</button>
</form>
</div>

null

下面的代码是用于下拉列表的。我需要将文本值传递给input,它是来自另一个选定li的li中的li。两种输入都应该有不同的选择。并且两个选定值都需要传递给具有类current的主div span

<div class="dropdown area" tabindex="0">
    <span class="current">East</span>
    <div class="list">
       <ul>
         <li class="option">
           <input id="displayValue" class="area-ft" type="text" name="text" placeholder="Min"> 
           <input id="idValue" class="area-ft" type="text" name="text" placeholder="Max"> </li>
         <li class="option" data-value="volvo" data-display-text="">Area</li>
         <li class="option  selected" data-value="saab" data-display-text="">East</li>
         <li class="option " data-value="fiat" data-display-text="">West</li>
         <li class="option " data-value="audi" data-display-text="">South</li>
       </ul>
   </div>
</div>

我试过用这个

$('.area').ON('change',function(){document.getElementById('display value').value=this.options[this.selectedindex].text;document.getElementById('id value').value=this.options[this.selectedindex].text;})

共有1个答案

赫连棋
2023-03-14

事件将不起作用,因为当您单击不改变任何输入的li标记时,检查->definition

尝试->

$('.area li').on('click', function () {
    document.getElementById('displayValue').value = 
    this.options[this.selectedIndex].text;
    document.getElementById('idValue').value = this.options[this.selectedIndex].text;
})
 类似资料:
  • 嘿,我是一个JAVA新手,我正在做一个项目,在这一点上我被困住了,我想做的是...我已经做了一个JTree列出了其中的一些项,现在我想获得一个JTree的选定项的文本,将它存储在一个字符串对象中,并将它传递给另一个类,在那里我可以对它做进一步的操作...这是我试过的 当我运行程序时,在getVal()中返回一个空值,而不是JTree项的文本,请帮助。

  • 本文向大家介绍jquery获取select选中值的文本,并赋值给另一个输入框的方法,包括了jquery获取select选中值的文本,并赋值给另一个输入框的方法的使用技巧和注意事项,需要的朋友参考一下 html 代码: 相关js 代码: 以上这篇jquery获取select选中值的文本,并赋值给另一个输入框的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我正在尝试反应表,对反应一般是很新的。现在,在下面的代码中,一个本地JSON(mock_data.JSON)被传递到常量数据中。我想用从URL获取的数据替换本地JSON。我怎么能那样做?谢谢:)

  • 所以,我试图用discord js和sqlite3做一件事,但在过去的几个小时里,我一直在讨论这个问题,我仍然不知道如何解决它。 因此,我试图获取仅在中可用的数据,但我不知道如何将其传递出去,以便返回预期值。我已经尝试过使用全局变量,把它放在更大的范围内,但我仍然不知道如何做到这一点。 对不起,如果我弄糊涂了,我不习惯一直问问题。 编辑:应该说我正在使用NPMSqlite3模块。https://w

  • 问题内容: 我的数据表的每一行分别具有两个按钮租用和遗憾,我的数据表的一列包含电话号码,我无法弄清楚,如何获得单击按钮租用并将其传递给另一行的同一行的编号表格..非常感谢您的帮助 问题答案: 为此,您可以使用您的事件,请参阅下文。 表格2范例

  • 爬虫过程中,我想查找ul下的多个li中带有特定文本的那一个li,获取li的路径。以此实现查找带有特定文本的控件。请问用driver.find_element如何实现? 我现有代码如下: