HTML/Javascript输入类型=“;文本“-如何显示不同于值的文本


HTML/Javascript Input type="text" - How to shows text different from value?

实际上我有一个数据列表:

<datalist id='modelsList'>
   <option value='1'>Dummy1</option>
   <option value='2'>Dummy2</option>
</datalist>

这用于输入:

<input type='text' name='dummy' autocomplete='off' list='modelsList' value=''/>

如果我开始键入Dummy2,然后单击下拉列表结果,文本框显示2。我需要找到一种方法,将2作为值,但将Dummy2作为文本。

我不能使用下拉列表(选择标签)

这里,我的解决方案根据您的需要进行检查。。。您可以使用输入事件来实现这样的功能,

HTML

<input type='text' id='dummy' list='modelsList'/>
<datalist id='modelsList'>
     <option value='1'>Dummy1</option>
     <option value='2'>Dummy2</option>
</datalist>

Jquery

$("#dummy").on('input', function () {
    var val = this.value;
    if($('#modelsList option').filter(function(){
        return this.value === val; 
    }).length) {
       var option = $('#modelsList').find('option[value="' + val + '"]');
       $(this).val(option.text());
    }
});

同时检查上述代码的DEMO

HTML5中文本input的格式如下:

<input type="text" name="name" value="Value" placeholder="Placeholder Text">

当用户键入内容时,value会发生变化。


您可能会混淆textarea:

<textarea name="name">Value</textarea>

如果你想放一个textarea标签,你必须知道value属性是无效的,但如果你想用它代替input,并且格式与你放的类似:

<textarea name="name">contentHere</textarea>