Simone,

Thanks for the explanation which clarifies things greatly, and also explains the behavior I was seeing. In my case the validation was indeed being triggered by a call to the widget's getValue within my on-value-changed event handler. An explicit call to validate() in my event handler seems to work just fine - all works as expected now.

Thanks for you help,

Robin



On 10 Feb 2006, at 04:49, Simone Gianni wrote:

Hi Robin,
AFAIK widgets are validated in two cases :
- When getValue is explictly called
- When validate is called

This means that in a normal form usage, they are validated :
- If another component (say, an event listener) calls the getValue () for some reason.
- If a submit button is pressed (explicit call to validate() )
- If an action button with validate = true is pressed (explicit call to validate() )

The "http submit" that happens with submit-on-change="true" or with an event handler, with or without ajax, is not a "cform submit", so doesn't trigger validation if not as a side effect of something else going on.

You could try calling validate() explicitly from inside your event handler, it could work but i've never tested it, so let me know :)

Regards,
Simone

--
Simone Gianni


Robin Wyles wrote:

Hi All,

I have a text field with custom validation and a value-on-changed event listener...

<fd:field id="video_key" required="true">
    <fd:datatype base="string" />
    <fd:validation>
        <fd:javascript>
            return validateVideoKey(widget);
        </fd:javascript>
    </fd:validation>
    <fd:on-value-changed>
        <fd:javascript>
            updateFiles(event.source);
        </fd:javascript>
    </fd:on-value-changed>
</fd:field>

When the value of the field changes, the custom validation is executed and if successful then my value-on-changed listener is executed also - all good. If the validation fails then my value- on- changed listener is not executed, which is (I think) also the expected behaviour.

However, when the validation fails as a result of the value-on- changed listener being fired no validation error message is show on the form. My custom validation sets a ValidationError on the widget, and this gets displayed if the form is submitted with a submit button, just not when submitted as a result of the value- on-changed. This is true with both AJAX enabled or AJAX disabled on my form.

Is there a way I can get the widget to display its ValidationError after being validated as the result of the value- on-changed?

Alternatively, and in my particular case this is preferable, is there a way I can disable the validation before the value-on- changed on this field?

Thanks,

Robin


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]