Водяной знак для ввода текста с использованием пользовательского обработчика BindingHandler

Я пытался создать собственный обработчик bindingHandler, который я могу использовать, чтобы придать поведение водяного знака полям ввода текста.

Под водяным знакомя подразумеваю: добавить значения по умолчанию в текстовые поля, которые удаляются при фокусе и заменяются при размытии, если текстовое поле все еще пусто

Мне удалось заставить это работать как продемонстрировано в этом jsfiddle: http://jsfiddle.net/rpallas/nvxuw/

У меня есть 3 вопроса об этом решении:

  1. Есть ли способ изменить его, чтобы мне нужно было только объявить водяной знак значение один раз? В настоящее время я должен поместить его в место, где я объявляю привязку, и я также должен инициализировать наблюдаемый объект с тем же значением в модели представления, поскольку в противном случае он не будет иметь начального значения.
  2. Есть ли лучший способ добраться до базового наблюдаемого, к которому привязано значение элемента. Сейчас я получаю его с помощью allBindingsAccessor, но мне это кажется неправильным. Первоначально я просто устанавливал значение с помощью jquery $(element).val(''), но это тоже казалось неправильным.Что лучше, или есть лучший способ?
  3. Кто-нибудь знает или знает о существующем решении этой проблемы? Я заново изобретаю колесо?

5
задан Robbie 7 June 2012 в 14:57
поделиться