Implementing HTML maxlength was a bit of a pain. Not to write the helpers though, that was easy….

$EcoModelHelper.AttributeLength($Product, "ID")

But when it came to specifying that in the <input> it was too much work! This is how it is done statically…

$FormHelper.TextFieldValue("Product.ID", $Product.ID, "%{maxlength='32'}")

Now I had to replace the static 32 with the EcoModelHelper code.

#set ($ProductIDLength = $EcoModelHelper.AttributeLength($Product, "ID"))
$FormHelper.TextFieldValue("Product.ID", $Product.ID, "%{maxlength='$ProductIDLength'}")

This was starting to look like too much typing!

So instead I have decided to add new methods to the EcoFormHelper. Here is the first:

$EcoFormHelper.ObjectTextField("Product.ID", $Product, "ID")

This will output something like this

<input type=”text” id=”Product_ID” name=”Product.ID” value=”AlterEgo” maxlength=”32″ />

It just uses the normal MonoRail $FormHelper.TextFieldValue helper but passes it the current value of the object and the maximum length as defined in the model

More work up front, less in the long run 🙂


Leave a Reply

Your email address will not be published. Required fields are marked *