Hi Martin,

yes, I agree with you that the first if clause is only a check.

But this is not the problem. The second if clause is it. If there exists a function it is then executing for the first time and if this function returns to true it executes the onsubmit for the second time...

Please change in your form onsubmit function to return true. And you get the "'executing onsubmit'" message twice.

if(document.forms['form1'].onsubmit)
{
        alert('checked onsubmit is existing. everything ok here.');

if(alert('now execute onsubmit first time, if I result to true I will execute it by submitting in the statement again!');document.forms['form1'].onsubmit())
        {
alert('Now the first onsubmit returned true and I submit the form and execute onsubmit again!');
                document.forms['form1'].submit();}
        }
else
{
        document.forms['form1'].submit();
}
return false;
}

Martin Marinschek (JIRA) wrote:
     [ http://issues.apache.org/jira/browse/MYFACES-401?page=all ]
Martin Marinschek closed MYFACES-401:
-------------------------------------

    Fix Version: Nightly Build
     Resolution: Fixed

Don't think so: the first call to onsubmit is no call, but just a check if the 
function is existing.

try out the following test file and see what happens:

<html>
<head>
</head>
<body>
<form id="form1" target="#" onsubmit="alert('executing onsubmit');return 
false;">
<input type="submit" onclick="if(document.forms['form1'].onsubmit){alert('checked 
onsubmit is existing'); 
if(document.forms['form1'].onsubmit()){document.forms['form1'].submit();}}else{document.forms['form1'].submit();}return
 false;}"/>
</form>
</body>
</html>

CommandLink tag override onsubmit function of Form
--------------------------------------------------

        Key: MYFACES-401
        URL: http://issues.apache.org/jira/browse/MYFACES-401
    Project: MyFaces
       Type: Bug
 Components: Implementation
   Versions: 1.1.0
Environment: Tomcat 5.0.28
   Reporter: Zhong Li
   Assignee: Martin Marinschek
   Priority: Critical
    Fix For: Nightly Build
Attachments: bugfix_myfaces-401.txt

I have java script onsubmit in <h:form>, when I use commandLink tag, even 
onsubmit return false, the form still submitted. I checked javasctipt, If I am right, 
the bug should be here,
JSF generate Javascript for each commandLink like,
clear_unitItemViewList();
document.forms['unitItemViewList'].elements['autoScroll'].value=getScrolling();
document.forms['unitItemViewList'].elements['unitItemViewList:_link_hidden_'].value='unitItemViewList:_id49_0:_id72';
if(document.forms['unitItemViewList'].onsubmit){document.forms['unitItemViewList'].onsubmit();}
document.forms['unitItemViewList'].submit();
return false;
----------------------
so problem it will be caused by if(document.forms['unitItemViewList'].onsubmit){document.forms['unitItemViewList'].onsubmit();}
document.forms['unitItemViewList'].submit(); //the form submitted!!!!!!
it should be if(document.forms['unitItemViewList'].onsubmit)
{
   if( document.forms['unitItemViewList'].onsubmit() )
   {
      document.forms['unitItemViewList'].submit();
   }
}
else
{
  document.forms['unitItemViewList'].submit();
}



Reply via email to