Somnath Kharat
Somnath Kharat

Reputation: 3600

How to check button is clicked inside a function

My Scenerio:

I have a function: The function Addprocedure() is called on onclick of Addprocedure button.
In this function i want to check if btnAddSelectedProcedures is clicked then do Something else do nothing

 function Addprocedure(){
        if()// Check if Button is clicked, button id = `btnAddSelectedProcedures`
           {
              //Do Something
           }
           else{
              //Do nothing
           }
    }

Upvotes: 2

Views: 3178

Answers (6)

Jared
Jared

Reputation: 3016

Save the state of the button in a variable.

Define btnClicked globally as false. When btnAddSelectedProcedures is clicked, change btnClicked to true. When you call Addprocedure check if btnClicked variable is true and if so, that button has been clicked.

Example:

var btnClicked = false;

function Addprocedure() {
    if (btnClicked) {
        //Do something...
    } else {
        //Do something else...
    }
}

$('BUTTON[name="btnAddSelectedProcedures"]').click(function() {
    btnClicked = true;
});

$('BUTTON[name="Addprocedure"]').click(function() {
    Addprocedure();
});

Upvotes: 5

steo
steo

Reputation: 4656

I suggest to avoid using global var. Use a class instead ( or You can set data-* attribute as well )

$('#btnAddSelectedProcedures').on('click', function(){
 //$(this).toggleClass('clicked');

 if(! $(this).hasClass('clicked') ){ //allows you to set only once the class
   $(this).addClass('clicked'); 
 }
Addprocedure();
});

then

function Addprocedure(){
    if( $("#btnAddSelectedProcedures").hasClass('clicked') ) //I guess you can call $(this) too
       {
          //Do Something
       }
       else{
          //Do nothing
       }
}

I used toggleClass because I think you want to check every time if the user clicked . Use addClass in the other way.

Upvotes: 1

Arun P Johny
Arun P Johny

Reputation: 388316

Try

$('#btnAddSelectedProcedures').click(function(){
    $(this).data('clicked', true)
})

then

function Addprocedure(){
    if($('#btnAddSelectedProcedures').data('clicked')){
        //clicked
    } else {
        //not clicked
    }
}

Upvotes: 3

Norbert Pisz
Norbert Pisz

Reputation: 3440

<button id="1" onClick="Addprocedure(this.id)">B1</button>

and then

function Addprocedure(clicked_id)
{
    alert(clicked_id);
}

Upvotes: 0

Suresh Atta
Suresh Atta

Reputation: 121998

One possiblity,

You can declare a global variable and mark it as true when yourbtnAddSelectedProcedures clicked and use that to check in your Addprocedure() function.

var isButton1Clicked =false;

onButton1Click{
 isButton1Clicked ==true
}


onButton2Click{
if(isButton1Clicked){
//procedd
}

}

Upvotes: 1

Vinit Prajapati
Vinit Prajapati

Reputation: 1613

It is simple, check id

function Addprocedure(){
        if(this.id === 'btnAddSelectedProcedures')// Check if Button is clicked, button id = `btnAddSelectedProcedures`
           {
              //Do Something
           }
           else{
              //Do nothing
           }
    }

Upvotes: 2

Related Questions