improved handle of .val() to set/unset values and make the placeholder behave