Error tracking is working really nice, that is not the problem. My problem is that not every form field does record its input value to the trackingFields. Textfields do always record their values, even if no error occured.

On my page I'm iterating the trackingFields while I'm building up the form with all its form fields. In code it does almost look like this:

<form>
<fieldTracking.iterator...>
<errorField.next>
<inputField>
<errorField.next>
<inputField>
<submit>
</form>

And it's working fine - as long as all your input fields are TextFields/DatePicker/TextArea. All error messages are shown close to their related input fields.

But if you change a TextField to a PropertySelection or a Checkbox, this model is no longer working.

The list of entries does not match the number of form components inside the form, as these form components do not record their input values to the fieldTrackings. These fields do only record their error message to the fieldTrackings.

Any idea on how to display the error messages as in my example?

Christian


Am 01.02.2006 um 00:44 schrieb Ron Piterman:

I don't know why checkbox propertySelection aso don't have validator, I guess they are not that common, but you can validate them in your submit/form listener and add trackings to the delegate, making the errors apear on each IFormComponent...

you just call one of the error tracking methods on the delegate. make sure you use one that needs a IFormComponent as parameter, and your error will be recorded for this field. Also, you can record errors for fields which have validators if you perform some extra validation which is not done by the validator, like consistency etc.

Hope that helps,

Cheers,
Ron

Christian Mittendorf wrote:
Hello!
I'm currently exploring how Tapestry 4 is validating fields and tracking error messages. Can someone please tell me if I'm right with the following assumptions:
- _every_ error is tracked in the ValidationDelegates fieldTrackings
- _only_ the content of form elements that extend ValidField or implement TranslatedField is stored in FieldTrackings Therefore only the following form elements will always be available from the fieldTrackings, even if no error was recorded for them:
- DatePicker, TextArea, TextField (they implement TranslatedField)
- ValidField (as of Tapestry 4 deprecated)
This does lead me to the following question: why isn't the input of other form elements (like i.e. Checkbox, PropertySelection) handled the same way as TranslatedFields are? Isn't this behavior contrary to the documentation of IValidationDelegates method "recordFieldInputValue()". The JavaDocs say: "Records the user's input for the current form component. Input should be recorded even if there isn't an explicit error, since later form-wide validations may discover an error in the
field."
What I want to do is to show error messages from the form delegate next to the form field (text field, check box, drop down, etc) where the error is recorded. Is there a known way to do it?
Christian
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: tapestry-user- [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]

Reply via email to