Первоначально я думал, что отсутствие поддержки заполнителей может привести к проблемам при манипулировании значениями type = "email". При настройке быстрого jsFiddle мне удалось успешно обновить значение (testd в IE7).
Я заменил ваше имя помощника setValue на makePlaceholder и использовал в своем примере очень простую реализацию.
function makePlaceholder( el, placeholder ) {
el.onfocus = function(){
if( placeholder == el.value ) {
el.value = '';
}
};
el.onblur = function() {
if( '' == el.value && placeholder != el.value ) {
el.value = placeholder;
}
};
el.value = placeholder;
}
Не стесняйтесь адаптировать это в своем решении, надеюсь, оно вам поможет.