|  | Posted by Jonathan N. Little on 06/25/06 15:34 
Harlan Messinger wrote:> Jonathan N. Little wrote:
 >> Event handlers attached by 'addEventListener' do not seem to pass
 >> values in time to cancel form submission unlike the methods that it is
 >> supposed to replace. In an attempt to keep the markup as clean as
 >> possible, I add the handlers from the attached javascript page and I
 >> have noticed the trouble. Small demo to illustrate:
 >>
 >> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 >>             "http://www.w3.org/TR/html4/strict.dtd">
 >> <html><head><title>Attached Events</title>
 >>
 >> <script type="text/javascript">
 >> function cancelIt(){
 >>   alert("This should cancel the form submission");
 >>   return false;
 >> }
 >>
 >> function init(){
 >>   var e = document.getElementById('findme');
 >>   if(e.addEventListener){
 >>     e.addEventListener('click', cancelIt, false);
 >>   }
 >>   else if(_s.attachEvent){    //MS IE support
 >>     a.attachEvent("onclick", cancelIt);
 >
 > What are _s and a?
 
 Just me being sloppy in cutting down the code from the actual
 development site to the "example" code in the post. (Prime example why a
 URL is better than pasted code). The original code added several events
 for a JavaScript pre-check evaluation of a form prior to submission.
 
 
 Should have been:
 
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
 <title>Attached Events</title>
 
 <script type="text/javascript">
 function cancelIt(){
 alert("This should cancel the form submission");
 return false;
 }
 
 function init(){
 var e = document.getElementById('findme');
 if(e.addEventListener){
 e.addEventListener('click', cancelIt, false);
 }
 else if(e.attachEvent){  //MS IE support
 e.attachEvent("onclick", cancelIt);
 }
 e = document.getElementById('me2');
 e.onclick=cancelIt;
 }
 
 if(window.addEventListener){
 window.addEventListener('load',init,false);
 }
 else if(window.attachEvent){
 window.attachEvent("onload", init);
 }
 </script>
 
 </head>
 <body>
 <script type="text/javascript">
 alert("Do your have a query string" + location.search);
 </script>
 <form method="get">
 <div>
 <input type="hidden" name="test" value="posted">
 Hard coded the old way not desirable, JS in markup
 <br>
 <input type="submit" value="Hard Coded" onclick="return cancelIt()">
 <hr>
 Attached by addEventListener does pass the FALSE in time
 <br>
 <input type="submit" value="By Listener" id="findme">
 <hr>
 Ok, effect, not hard coded, but does not append but replace handlers
 <br>
 <input type="submit" value="Direct Dot Coded" id="me2">
 </div>
 </form>
 </body>
 </html>
 
 
 --
 Take care,
 
 Jonathan
 -------------------
 LITTLE WORKS STUDIO
 http://www.LittleWorksStudio.com
 [Back to original message] |