KRL - 你如何获得观察领域的价值?

时间:2011-01-06 01:39:14

标签: krl

我正在观看有变化的网页上的字段。

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

如何在更改后触发的规则中获取该字段的新值?

我有这样的规则

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

我无法找到如何获得新值。我不能用提交来看它。

由于

1 个答案:

答案 0 :(得分:3)

我会猜测我认为你想要做什么:

您在页面上有输入,当用户输入输入时,您希望能够引发事件并从用户输入的输入中获取新值,以便您可以对其进行任何反应是他们输入的。

基于我所做的假设:

监视操作不是您真正想要使用的操作,因为它只会在正在观看的操作上引发事件,并且不会随事件一起发送任何其他数据。您需要编写一些自己的自定义JavaScript

  • 注意用户输入
  • 从输入中获取新值
  • 使用新值作为参数提升Web事件

以下是从http://kynetxappaday.wordpress.com/2010/12/16/day-8-raise-web-events-from-javascript/获取的一些示例代码,用于说明使用JavaScript中的参数引发Web事件

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;
    }
  }
}