Как мне получить доступ к полю ввода текста с помощью jQuery? - PullRequest
0 голосов
/ 03 июня 2009

Я пытаюсь использовать плагин typeWatch для jQuery. У меня есть этот JavaScript:

 <script type="text/javascript">
 $(document).ready(function() {
   var options = {
        callback: function() { alert("a-ok!  " + $(this).text); },
        wait: 333,
        highlight: true,
        captureLength: 1
    }

    $("#customer").typeWatch(options);
 });
 </script>

И в HTML моего представления это:

 Method B: <%= Html.TextBox("customer") %>

В этом тесте, если я наберу "ABC" в текстовом поле, я ожидаю всплывающее предупреждение с "a-ok! ABC". Вместо этого появляется следующее ...

a-ok!  function (F) {
    if (typeof F !== "object" && F != null) {
        return this.empty().append((this[0] && this[0].ownerDocument || 
               document).createTextNode(F));
    }
    var E = "";
    o.each(F || this, function () {o.each(this.childNodes, function () {
          if (this.nodeType != 8) {
             E += this.nodeType != 1 ? this.nodeValue : o.fn.text([this]);}});});
   return E;
}

Я попытался изменить $ (this) .text на .val, и я также попытался ссылаться на поле ввода более прямо как $ ("# customer"), но они дают схожие результаты. Как я могу получить доступ только к введенному тексту?

Ответы [ 2 ]

5 голосов
/ 03 июня 2009

Вы должны использовать функцию val () в текстовом поле:

$(this).val();
1 голос
/ 03 июня 2009

Глядя на код typeWatch версии 2.0 я нашел это:

    function checkElement(timer, override) {
        var elTxt = jQuery(timer.el).val(); <----------- !!! this...

        // Fire if text > options.captureLength AND text != saved txt OR if override AND text > options.captureLength
        if ((elTxt.length > options.captureLength && elTxt.toUpperCase() != timer.text) 
        || (override && elTxt.length > options.captureLength)) {
            timer.text = elTxt.toUpperCase();
            timer.cb(elTxt); <-------------- !!! ...goes here.
        }
    };

timer.cb - это обратный вызов, который вы установили в настройках. Таким образом, вы просто добавляете параметр в ту функцию обратного вызова, которую используете, и этот параметр будет текстом из ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...