KRL - Как вы получаете значение наблюдаемого поля? - PullRequest
3 голосов
/ 06 января 2011

Я наблюдаю поле на странице с изменением.

watch("#searchbox","change");

Как получить новое значение поля в правиле, которое срабатывает после его изменения?

Iесть такое правило

rule get_update is active {
 select when web change "#searchbox"
  ....
}

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

Спасибо

1 Ответ

3 голосов
/ 06 января 2011

Я собираюсь угадать, что, по-моему, вы пытаетесь сделать:

У вас есть ввод на странице, и когда пользователь вводит данные, вы хотите иметь возможность вызвать событие и получить новое значение из ввода, в которое вводил пользователь, чтобы вы могли реагировать на что бы то ни было это то, что они набрали.

На основании сделанных мною предположений:

Действие watch - это не то, что вы действительно хотите использовать, потому что оно вызывает событие только для отслеживаемого действия и не отправляет никакие другие данные вместе с событием. Вы захотите написать свой собственный JavaScript-код для

  • часы для пользователя, набравшего
  • получить новое значение из ввода
  • поднять веб-событие с новым значением в качестве параметра

Вот пример кода, взятого из http://kynetxappaday.wordpress.com/2010/12/16/day-8-raise-web-events-from-javascript/, который иллюстрирует создание веб-события с параметром в JavaScript

ruleset a60x488 {
  meta {
    name "raising-custom-web-events"
    description <<
      raising-custom-web-events
    >>
    author "Mike Grace"
    logging on
  }

  rule run_on_a_pageview {
    select when pageview ".*"
    {
      notify("Hello","I ran on a pageview") with sticky = true;
      emit <|
        app = KOBJ.get_application("a60x488");
        app.raise_event("custom_event_just_for_me", {"answer":42});
      |>;
    }
  }

  rule respond_to_custom_event_raised_from_emitted_js {
    select when web custom_event_just_for_me
    pre {
      answer = event:param("answer");
    }
    {
      notify("What is the answer?",answer) with sticky = true;
    }
  }
}
...