[jQuery]:如何添加onclick事件i datalist选项

时间:2018-01-14 17:25:17

标签: jquery ajax option datalist

我遇到了datalist的问题。 我输入了:

<input id="adres-lokalizacja" class="input-lg" placeholder="wpisz lokalizację" type="text" list="adres-lista-lokalizacji" />
<datalist id="adres-lista-lokalizacji" name='TypeList'></datalist>

当我写一些字符(如果长度> 3)时,我通过JSON字符串发送到webservices并获取JSON.object。接下来,我按选项附加datalist并添加一些data-var dinamiclly:

$('#adres-lokalizacja').on("input",function(){
if(this.value.length > 3 ){
        var data = {
            'q': 'Polska '+jQuery(this).val(),
            'polygon_geojson' : 1,
            'format': 'json',
            //'lat' : jQuery(this).data("lat"),
            //'lon' : jQuery(this).data("lon")
        };
        jQuery.ajax({
            type: 'GET',
            url: 'http://nominatim.openstreetmap.org/search.php',
            data: data,
            error: function(data){
                console.log(data);
            },
            success: function(data){
                var li = jQuery('#adres-lista-lokalizacji').empty();

                jQuery(data).each(function(index, item) {
                    li.append(
                        opt = jQuery(document.createElement('option')),
                        opt.attr({
                            'id': index,
                            'value': item.display_name,
                            'data-lat': item.lat,
                            'data-lon': item.lon,
                            //'onClick': someFunction() ///not working
                            }).text(item.display_name +' '+translate_item(item.class) ),
                    );
                });
            }
        });

        }
    });

如何将onClick事件添加到此代码中? 我希望有这样的动态代码:

<option id="0" value="some value 1" data-lat="xxx" data-lon="yyy" onClick="somefunction(value1)">some value 1</option>
<option id="1" value="some value 2" data-lat="xxxx" data-lon="yyyy" onClick="somefunction(value2)">some value 2</option>
etc.

当我从datalist中选择任何选项并单击它们,然后运行“某些功能()&#39;正在加载。

我该怎么做?

此外,我想停止通过AJAX发送查询:

  if(this.value.length > 3 && !(some var or function to) ){ 

加载函数somefunction()。

你能帮帮我吗?

0 个答案:

没有答案