Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change onClick function arguments dynamically

I have something like this:

<button id="button1" onClick="someFunc('arg1','arg2')"> </button> 

Is it possible in JavaScript to change parameters of the function someFunc to look like below:

<button id="button1" onClick="someFunc('somethingDiff1','somethingDiff2')"> </button> 
like image 423
QGA Avatar asked Jun 09 '16 13:06

QGA


Video Answer


2 Answers

Try this

If you want in jquery then try this

$(document).ready(function(){
   var clickfun = $("#button1").attr("onClick");
   var funname = clickfun.substring(0,clickfun.indexOf("("));       
   $("#button1").attr("onclick",funname+"('somethingDiff1',"+"'somethingDiff2')");
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button1" onClick="someFunc('arg1','arg2')">Button1</button> 

If you want in JavaScript then try this:-

<script>
  window.onload=function(){
  var clickfun = document.getElementById("button1").getAttribute("onclick");
  var funname = clickfun.substring(0,clickfun.indexOf("("));       
  document.getElementById("button1").setAttribute("onclick",funname+"('somethingDiff1',"+"'somethingDiff2')");    
};
</script>

Hope This will help you.

like image 158
Sharique Ansari Avatar answered Oct 06 '22 02:10

Sharique Ansari


This could also be done by writing something similiar to this:

document.getElementById('button1').setAttribute('onclick','thiswhatyouwanttohave');

But the document have to be fully loaded, or at least the button must be present to be able to access the onclick attribute.

like image 44
prizm1 Avatar answered Oct 06 '22 02:10

prizm1