возвращает код функции вместо результата

#jquery

#jquery

Вопрос:

Я сохранил функцию, созданную в jQuery, в clean.js досье..

 jQuery.fn.singleDotHyphen = function(){
return this.each(function(){
    var $this = $(this);
    $this.val(function(){
        return $this.val()
            .replace(/.{2,}/g, '.')
            .replace(/-{2,}/g, '-');    
    });
});
};
  

Мой файл действий..

 <script type="text/javascript">  

$(document).ready(function() {
$.noConflict();
   $('#title').limitkeypress ({ rexp:/^[A-Za-z.-s`]*$/ }); 
       $('#title').blur(function() {
           $(this).singleDotHyphen();  
        });
 }); 
 </script>
  

Проблема в том, что onblur возвращает мне код функции, где, поскольку я хочу вернуть строку, которая отклоняет непрерывный дефис и точки…

Комментарии:

1. Какую версию jQuery вы используете?

2. Я использую jquery версии 1.3.2

3. В качестве примечания, noConflict() не предназначен для использования внутри документа, готового ( ref ) … это может действительно все испортить, если у вас на этой странице есть две библиотеки.

Ответ №1:

Версия .val() метода, которая принимает аргумент функции, существует только в jQuery 1.4 и выше. Однако в этом случае вам не нужна эта версия, поскольку вы можете просто передать новое значение в val() :

 $this.val($this.val().replace(/.{2,}/g, '.')
                     .replace(/-{2,}/g, '-'));