如何将变量检查编码到Seaside jQuery onSuccess:脚本中?
我有一个应用程序,其输入字段触发值更改,然后重新呈现视图。它可以很好地根据显示值提供域数据的生动反馈。
如果存在挂起的更改,视图将显示“保存”和“取消”按钮。如果用户在输入字段之后单击任一按钮,则输入字段的onBlur:脚本将阻止按钮操作发生。推荐的解决方案(button click event lost due to the alert box in text box onblur event)是使用按钮的“onmousedown”事件来设置onBlur脚本检查的全局变量。
使用我的测试代码,我可以看到全局'saveCancelButtonClicked‘被设置,但我不知道如何检查该值以防止呈现步骤。
html button
onMouseDown: 'saveCancelButtonClicked = 1;';
...
html textInput
onBlur: ((
html jQuery ajax
callback: [:stringValue | self checkValue: stringValue]
value: html jQuery this value)
onSuccess: (
(html jQuery id: 'selectedComponent') load html: [:renderer |
renderer script: 'console.log(saveCancelButtonClicked); '.
self renderSelectedComponentOn: renderer]) )]如果按下保存按钮,我可以看到console.log显示'1‘。那么,如何检查该值并跳过“self renderSelectedComponentOn:”步骤呢?
在javascript (简单的if语句)中很容易做到这一点,但是我还没有在Seaside中找到一个例子。
发布于 2013-04-10 21:41:55
Joachim Tuchel在Seaside邮件列表上回答了这个问题:
onSuccess: (
(JSStream on: 'saveCancelButtonClicked == 0') then: (
(html jQuery id: 'portalSelectedComponent') load html: [:renderer | 呈现保存和取消按钮的...the方法包含...
html script: 'saveCancelButtonClicked = 0;' ....both保存和取消按钮实现...
onMouseDown: 'saveCancelButtonClicked = 1;'; 正如我所希望的那样:在更新输入字段后按下“...works”或“Cancel”按钮都会在第一次单击时触发回调。并且失去焦点会正常触发输入域onBlur操作。
https://stackoverflow.com/questions/15906240
复制相似问题