简体   繁体   中英

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

Actually i have a datalist:

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

This is used in an input:

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

If i start typing Dummy2 and then i click on the dropdown list result the textbox shows 2. I need to find a way to have 2 as value but Dummy2 as text.

I cannot use a drop-down list (select tag)

The format for a text input in HTML5 is as follows:

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

As a user types in their content, the value changes.


You may be getting confused with textarea :

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

Here, my solution as per you want check it out... You can use input event for achieving such functionality,

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());
    }
});

also check DEMO of the above code.

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM