Yes the issue is that you use a command button which in case of a single button maps automatically to input type="submit" if you hit enter the ajax request is issued and subsequently parallely the full submit is issued as well. You can resolve that by using commandlinks or <h:commandButton type="button"> which should resolve the auto enter issue introduced by the input type="submit".

The problem with the error is not a bug but an xhr request issued asynchronously then a page refresh triggered at the same time which is more a problem of the spec relying on parallel xhr requests. MyFaces then correctly issues an http error due to the timing issue triggered because of the xhr request having failed due to the subsequent refresh issued. But as usual with those timing problems they occur depending on the current state of the issue, hence in a non reproducable manner.

So the final behavior after fixing is

change + enter -> onchange
button press -> action



Werner




Am 02.07.10 13:35, schrieb Marcus Büttner:
Hi,

I have the following example:

<h:outputLabel for="val1" value="Value1"/>
<h:inputText id="val1"
value="#{myBean.val1}"
valueChangeListener="#{myBean.val1ChangedListener}">
<f:ajax render="myText" event="change" />
</h:inputText>

<h:outputText id="myText" value="#{myBean.val1}"/>

<h:commandButton id="button" value="submit" action="#{myBean.action}"/>

Now I fill out the input field and directly press Enter for submit or
click submit button without leaving the input field before. Now two
requests are send parallel (page submit and ajax value change event).
The problem is I found four different behaviours which comes random
(with firefox):

1.) 1. request: value change listener is called. 2. request actions is
called (that's what I expected)
2.) 1. request value change listener is called. but the action request
is missing.
3.) 1. action request get's in an fires the value change event and calls
the action. but than this message pops up:
"httpError-httpError-Request failed- Note, this message is only sent,
because project sage is development and no other error listeners are
registered"
4.) 1. request value change lister is called. 2. request also value
change listener is called and than the action is called. the message
above also pops up.

In IE sometimes the action is called, sometimes not. The value change
listener is always called. But this error dialog (like in firefox) is
never shown.

Is there any explanation? How could I force a fix behaviour?

Thx for help.

Marcus




Reply via email to