在一个可信赖的div和datepicker上协调工作的jQuery UI自动完成是否可行?

HM2*_*M2K 3 jquery contenteditable jquery-ui-autocomplete jquery-ui-datepicker

在论坛帖子"如何使jquery自动完成工作为一个可信的DIV而不仅仅是INPUT,TEXTAREA字段." 我们看到如何在一个可信的div元素上运行自动完成,但是与datepicker相结合,datepicker根本就不会填充输入字段.

正如你在这个jsFiddle演示中看到的那样:http://jsfiddle.net/xvnaA/

任何人都有任何明智的想法如何解决这个问题?

Ber*_*ron 9

而不是只是覆盖$.fn.val你可以像这样重新定义它:

(function ($) {
   var original = $.fn.val;
   $.fn.val = function() {
      if ($(this).is('[contenteditable]')) {
         return $.fn.text.apply(this, arguments);
      };
      return original.apply(this, arguments);
   };
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/xvnaA/27/

  • 好东西!我编写了答案来处理具有任何"contenteditable"值(例如纯文本)的元素,并使用`.text`而不是`.html`(更好地模仿`.val`的行为,减少XSS的可能性).有些人可能想要切换回`.html`,如果他们知道他们在做什么. (2认同)