在下拉列表中搜索带有替换关键字(ASP.NET/ JS/JavaScript)的选择项



>我在搜索下拉列表上的项目时遇到问题/或使用输入文本选择选项。我有一个下拉列表

<asp:DropDownList runat="server" ID="list">
                <asp:ListItem Text="" Value=""></asp:ListItem>
                <asp:ListItem Text="Mr" Value="Mr"></asp:ListItem>
                <asp:ListItem Text="I" Value="I"></asp:ListItem>
                <asp:ListItem Text="II" Value="II"></asp:ListItem>
                <asp:ListItem Text="III" Value="III"></asp:ListItem>
</asp:DropDownList>
<select id="list">
                <option value=""></option>
                <option value="Mr">Jr</option>
                <option value="I">II</option>
                <option value="II">III</option>
                <option value="III">IV</option>
</select>

当我单击下拉列表并输入"3"时,如何搜索选项 III。这意味着检查以允许相同值的变化。例如,当输入先生,先生,先生,先生,mR时。 下拉列表焦点为项的值="先生"。当输入"I"或"1"时,下拉列表焦点项目的值="I"。有人有想法吗?多谢!

我认为您应该使用一些逻辑将整数转换为罗马数字。像这样:

public static string ToRoman(int number)
{
    if ((number < 0) || (number > 3999)) throw new ArgumentOutOfRangeException("insert value betwheen 1 and 3999");
    if (number < 1) return string.Empty;            
    if (number >= 1000) return "M" + ToRoman(number - 1000);
    if (number >= 900) return "CM" + ToRoman(number - 900); 
    if (number >= 500) return "D" + ToRoman(number - 500);
    if (number >= 400) return "CD" + ToRoman(number - 400);
    if (number >= 100) return "C" + ToRoman(number - 100);            
    if (number >= 90) return "XC" + ToRoman(number - 90);
    if (number >= 50) return "L" + ToRoman(number - 50);
    if (number >= 40) return "XL" + ToRoman(number - 40);
    if (number >= 10) return "X" + ToRoman(number - 10);
    if (number >= 9) return "IX" + ToRoman(number - 9);
    if (number >= 5) return "V" + ToRoman(number - 5);
    if (number >= 4) return "IV" + ToRoman(number - 4);
    if (number >= 1) return "I" + ToRoman(number - 1);
    throw new ArgumentOutOfRangeException("something bad happened");
}

您可以使用 int。Tryparse 用于检查用户是否实际输入了数字,然后您可以使用此方法。

最新更新