It seems you have to look to: http://docs.joomla.org/Creating_a_custom_form_field_type. You could define a custom field by extending the Jform class:
<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
jimport('joomla.form.formfield');
// The class name must always be the same as the filename (in camel case)
class JFormField<FieldName> extends JFormField {
//The field class must know its own type through the variable $type.
protected $type = '<FieldName>';
public function getLabel() {
// code that returns HTML that will be shown as the label
}
public function getInput() {
// code that returns HTML that will be shown as the form field
}
}
With the getInput() function you could return any html.
Or try to use jQuery to style your forms (eample):
<body>
<div class="container">
<input type="text" name="subject">
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script>
$('input[name$="subject"]').wrap('<div class="input-prepend" />');
$('.input-prepend').prepend('<span class="add-on">my-icon</span>');
</script>
</body>