Munawir
Munawir

Reputation: 3356

Set value to input by calling javascript function

I am inserting a list of inputs through php loop.

For each input I need to get the value from database via ajax, For that I need to call a javascript function. I am not sure if it possible.

I am looking for something like this

<input ... value="javascript:getvalue(id)">

<script>
  function getvalue(id) {
    //set the value fron here
  }
</script>

Upvotes: 1

Views: 2292

Answers (2)

sachin kalekar
sachin kalekar

Reputation: 536

value attr just accepts strings more here https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value. You can use data-attributes or an id to assign the id and then get the value for it after its loaded. Please check the below snippet

<input data-id="id1">
<input data-id="id2">
<input data-id="id3">

<script>
  (function(){
    var inputs = document.getElementsByTagName("input");
    for(var i = 0; i < inputs.length; i++) {
      inputs[i].value = getvalue(inputs[i].dataset["id"])
    }
  }())
  function getvalue(id) {
    return id;
  }
</script>

Upvotes: 1

Ibrahim Shaikh
Ibrahim Shaikh

Reputation: 398

$(document).ready(function(){ 
  for(let i=0; i< $('.frmDatabase').length; i++)  {
    getvalue($('.frmDatabase').eq(i).attr('id'));
  }
})


function getvalue(id) {
//ajax call
//set async false and in success bind value from db to id
   $('#' + id).val(1);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="txtTest1" class="frmDatabase">
<input id="txtTest2" class="frmDatabase">

Upvotes: 0

Related Questions