Solved

A href with OnClick

Posted on 2013-11-22
8
442 Views
Last Modified: 2013-11-22
Experts,

I have a link on my website like following and when I click on the link and user confirms to logout and based on my function it should logoff from
the current website and open up the new website window (which is working fine when user says yes).

The problem is, when user cancels from the alert box as per the code below, it is still opening up the new website which I don't want.
Is there anyway I can stop going/directing the user to new website when user cancels?

<a href="http://www.abcd.com/" title="Access abcd website" target="_blank" onClick="myFunction()">Click Here to go to ABCD Website</a>


function myFunction()
	{
	  if (confirm("Are you sure you want to logoff and go to ABCD website?") == true)
			{
				location.href = '/logoffpage.cfm?goto=loginpage';
			}
			else
			{			
				return;
			}
	}

Open in new window


Thanks in advance
Appreciate your help as this is little time sensitive.
0
Comment
Question by:Tpaul_10
8 Comments
 
LVL 1

Expert Comment

by:TechArtisan
ID: 39670393
This is a pretty easy fix I believe by removing the == true, since confirm already implies the okay button is chosen.  Try this:

function myFunction()
      {
        if (confirm("Are you sure you want to logoff and go to ABCD website?") )
                  {
                        location.href = '/logoffpage.cfm?goto=loginpage';
                  }
                  else
                  {                  
                        return;
                  }
      }
0
 
LVL 7

Expert Comment

by:dimmergeek
ID: 39670398
or change your href to href="#"
0
 

Author Comment

by:Tpaul_10
ID: 39670427
Thanks for the quick response, appreciate it.

1. TechArtisan : Didn't work and still opens up the new website window.
2. dimmergeek : Didn't work either and with the # it is going to the current website when I cancels it.

if the user says yes, I need to direct the user to go to the new website and logoff from the current website (this is working fine with the current code)

and if the user says no/cancels nothing should happen. (it doesn't logoff from the current website but still going to the new website based on the current code)

Thanks
0
 
LVL 58

Accepted Solution

by:
Gary earned 400 total points
ID: 39670437
<a href="http://www.abcd.com/" title="Access abcd website" target="_blank" onClick="return myFunction()">Click Here to go to ABCD Website</a>

Open in new window


function myFunction()
      {
        if (confirm("Are you sure you want to logoff and go to ABCD website?"))
                  {
                        location.href = '/logoffpage.cfm?goto=loginpage';
                  }
                  else
                  {                  
                        return false;
                  }
      }

Open in new window

0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 7

Expert Comment

by:dimmergeek
ID: 39670439
Use the # in the link and remove your else clause
0
 
LVL 1

Expert Comment

by:TechArtisan
ID: 39670449
Yeah I noticed it didn't work after I posted it.  Try this instead.

I removed the link here as well as the _blank target:
<a href="#" title="Access abcd website" onClick="myFunction()">Click Here to go to ABCD Website</a>


function myFunction()
      {
        if (confirm("Are you sure you want to logoff and go to ABCD website?"))
                  {
                        location.href = '/logoffpage.cfm?goto=loginpage';
                        window.open('http://www.abcd.com/', '_blank');
                  }
                  else
                  {                  
                        return;
                  }
      }
0
 
LVL 1

Expert Comment

by:TechArtisan
ID: 39670455
GaryC123's suggestion works as well as my last one.  Either one does what your looking for.
0
 
LVL 43

Assisted Solution

by:Chris Stanyon
Chris Stanyon earned 100 total points
ID: 39670457
Your code is a little confusing. When the user clicks on the LogOff link, and says Yes in the alert, do you want them to got to logoffpage.cfm or abcd.com?

In order to stop the link being followed if the user clicks on No, then your onClick() needs to return false. Your onClick needs to be like this:

onClick="return myFunction()"

And your function needs to be this:

function myFunction() {
    if (confirm("Are you sure you want to logoff and go to ABCD website?")) {
        location.href = '/logoffpage.cfm?goto=loginpage';
    } else {
        return false;
    }
}

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
CSS Position not returning 2 48
Need some help with powershell script 5 36
Add css and js to MVC Project not in project 9 27
Angular - "nest" service calls? 18 25
Introduction HTML checkboxes provide the perfect way for a web developer to receive client input when the client's options might be none, one or many.  But the PHP code for processing the checkboxes can be confusing at first.  What if a checkbox is…
Boost your ability to deliver ambitious and competitive web apps by choosing the right JavaScript framework to best suit your project’s needs.
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
The viewer will learn how to dynamically set the form action using jQuery.

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now