Wasserzeichen zur Texteingabe mit dem benutzerdefinierten bindingHandler

Ich habe versucht, einen benutzerdefinierten bindingHandler zu erstellen, mit dem ich Texteingabefelder mit einem Wasserzeichen versehen kann.

Durchwatermark Ich meine: Standardwerte zu Textfeldern hinzufügen, die beim Fokussieren entfernt und beim Weichzeichnen ersetzt werden, wenn das Textfeld noch leer ist

Ich habe es geschafft, dies zum Laufen zu bringen, wie in diesem Beispiel gezeigt:http://jsfiddle.net/rpallas/nvxuw/

Ich habe 3 Fragen zu dieser Lösung:

Gibt es eine Möglichkeit, es so zu ändern, dass ich den Wasserzeichenwert nur einmal deklarieren muss? Derzeit muss ich es an der Stelle ablegen, an der ich die Bindung deklariere, und ich muss das Observable im viewModel mit demselben Wert initialisieren - da es sonst keinen Anfangswert hat.Gibt es eine bessere Möglichkeit, zum zugrunde liegenden beobachtbaren Wert zu gelangen, an den der Elementwert gebunden ist? Momentan greife ich mit dem allBindingsAccessor danach, aber das fühlt sich für mich falsch an. Ursprünglich habe ich den Wert nur mit jquery eingestellt$(element).val('') aber das fühlte sich auch falsch an. Welches ist das Beste oder gibt es einen besseren Weg?Hat jemand eine Lösung für dieses Problem? Erfinde ich das Rad neu?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage