Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the data-id value in this code

here i want to if i am select bangalore i want to take that value 1,suppose hydrabad means 2,i am trying but i am getting undefined

$(document).ready(function() {
  $("#resi_btn_search").click(function() {
    alert($(this).data("id"));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="col-md-2 col-sm-2 col-xs-2" style="padding-left:0px;padding-right:1px;">
  <input list="options" type="text" class="form-control" style="border-radius:0px;height: 46px;" name="location12" id="location12" placeholder="City">
  <datalist id="options">
    <option data-id="1">Bangalore</option>
    <option data-id="2">hydrabad</option>
    <option data-id="3">Miredhpedia</option>
    <option data-id="3">Bangalore</option>
  </datalist>
  <input type="submit" id="resi_btn_search">
</div>
like image 585
Kani R Avatar asked Dec 07 '25 18:12

Kani R


1 Answers

Inside click event handler this refers to the clicked element and $(this).data("id") would try to get the data attribute value of clicked element which is undefined.

Update the datalist with value attribute and later you can get the selected option by using attribute equals selector.

$(document).ready(function() {
  $("#resi_btn_search").click(function() {
    console.log($('#options option[value="' + $('#location12').val() + '"]').data('id'));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="col-md-2 col-sm-2 col-xs-2" style="padding-left:0px;padding-right:1px;">
  <input list="options" type="text" class="form-control" style="border-radius:0px;height: 46px;" name="location12" id="location12" placeholder="City">
  <datalist id="options">
    <option data-id="1" value="Bangalore" />
    <option data-id="2" value="hydrabad" />
    <option data-id="3" value="Miredhpedia" />
    <option data-id="3" value="Bangalore" />
  </datalist>
  <input type="submit" id="resi_btn_search">
</div>

Or you need to use filter() method to get the selected option using the input element value.

$(document).ready(function() {
  $("#resi_btn_search").click(function() {
    console.log($('#options option').filter(function() {
      return $('#location12').val() == this.value;
    }).data("id"));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="col-md-2 col-sm-2 col-xs-2" style="padding-left:0px;padding-right:1px;">
  <input list="options" type="text" class="form-control" style="border-radius:0px;height: 46px;" name="location12" id="location12" placeholder="City">
  <datalist id="options">
    <option data-id="1">Bangalore</option>
    <option data-id="2">hydrabad</option>
    <option data-id="3">Miredhpedia</option>
    <option data-id="3">Bangalore</option>
  </datalist>
  <input type="submit" id="resi_btn_search">
</div>
like image 125
Pranav C Balan Avatar answered Dec 09 '25 16:12

Pranav C Balan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!