gpt4 book ai didi

combobox - 语义 ui 组合框

转载 作者:行者123 更新时间:2023-12-02 19:45:10 24 4
gpt4 key购买 nike

我正在为我的项目使用语义用户界面框架。我需要组合框功能,因此我尝试将文本输入和语义用户界面下拉列表结合起来。

我的要求是:
1) 接受不在下拉列表中的值
2) 对文本输入进行验证(例如无空格)
3)选择/搜索下拉列表

参见:http://plnkr.co/edit/d5IUrqfHyjLy0qcH4qYQ?p=preview

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.8.1/semantic.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.8.1/semantic.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<h4 class="ui inverted black block header"><span>semantic ui</span></h4>
<div class="ui grid">
<div class="eight wide centered column">
<form class="ui form ui form segment">
<h4 class="ui dividing header">Personal Information</h4>

<div class="field">
<div class="ui icon input search dropdown">
<input type="text" id="jheader" data-validate="header" placeholder="Enter header" ng-model="person.gender">
<i class="dropdown icon link"></i>
<div class="menu">
<div class="item">Clothing</div>
<div class="item">Home Goods</div>
<div class="item">Bedroom</div>
<div class="item">Status</div>
<div class="item">Cancellations</div>
</div>
</div>
</div>
</form>
</div>
</div>
<script>
$(document).ready(function() {
$('.ui.dropdown').dropdown({
onChange: function(value, text, $selectedItem) {
$("#jheader").val(text).trigger('input');
}
});
console.log("ready!");
});
</script>
</body>
</html>

当我在输入中键入值时,我需要进行下拉搜索。

最佳答案

不久前我也遇到了几乎同样的问题。

以下是我为满足要求 1) 和 3) 所做的工作的示例。 http://plnkr.co/edit/4nC44UETWhPb8yVNNtKz?p=preview

代码也粘贴在下面,但没有大量注释。基本上它的工作原理是它使用语义的 UI 内置搜索选择下拉框类,即“搜索选择”,并使用模糊来设置您提交的隐藏文本字段。

您需要使用代码设置隐藏文本字段的原因是语义 UI 生成第二个文本字段,其类为“搜索”,用户将看到该字段并在其中输入数据,但实际上并未提交。

还有其他额外的代码来处理其他问题,请参阅上面 plunker 链接中的注释。为了处理其中之一,我必须从下拉 div 选项中删除自动生成的“active”类,从而导致所选下拉项出现非粗体效果。

HTML

  <div class="customDropdownSearchTextInput ui search selection dropdown">
<input type="hidden" name="gender">
<div class="default text">Gender</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item" data-value="Male">Male</div>
<div class="item" data-value="Female">Female</div>
</div>
</div>

JavaScript

$('.ui.dropdown').dropdown();

$(".customDropdownSearchTextInput").each(function(){

var defaultText = false;

if ( $(this).find(".text").hasClass("default") && $(this).find(".text").text() )
defaultText = $(this).find(".text").text();

var isSelectTag = false;
if ( $(this).find("input:hidden").length < 1 || $(this).addBack().find( "select" ).length > 0 )
isSelectTag = true;

if ( isSelectTag == false )
{
$(this).dropdown(
{
forceSelection: false
});

$(this).find(".search").on("focus", function(event){
var aOpt = $(this).parent().find(".active");
aOpt.removeClass("active");
});

var originalText = $(this).find(".search").text();
$(this).find(".search").on("blur", function(event){
var text = $(this).val();
if ( originalText != text )
{
if ( $.trim(text)=="" && defaultText != false )
{
$(this).parent().find(".text").addClass("default").removeClass("filtered").text(defaultText);
}
$(this).parent().find("input:hidden").val(text);
originalText = text;
}
});
}
});

关于combobox - 语义 ui 组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28205583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com