通过单击复选框启动智能功能
Launch a smarty function by clicking a checkbox
我正在玩smarty和jquery...
实际上,我有一个更拉格的项目,我想改进我的资源以更好地处理。
现在我有一个HTML页面(.tpl
)有一些内容。在一行中,我有一个复选框,如下所示:
<input type="checkbox" aria-label="..." checked>
<button onclick='fnTest({$options})'>test</button>
因为我想调用一个 js 函数并通过 JSON 传递一些数据,所以我在这个页面中有一行看起来像:
{$options = '{"preview":1, "extra_paper":0}'}
实际上只是创建一个包含 JSON 字符串的智能变量。
在我的jsFile上,只需使用console.log()
(目前)查看传递的内容。
function fnTest(obj){
console.log(obj);
}
一切都很好,直到这里。现在我想在选中/取消选中复选框后立即更改 JSON 字符串中的一些内容。
检查:
{$options = '{"preview":1, "extra_paper":1}'}
猖獗
{$options = '{"preview":1, "extra_paper":0}'}
我尝试使用智能功能
{function name=presets}
//some source to write the JSON-String new
{$data}
{/function}
那叫像
{presets data="checkstatus"}
但这里的问题是,我不知道如何在复选框操作上启动此功能......
也许还有另一种方法可以做到这一点,我想做的事情......
所以主要问题是:
是否有可能在复选框事件上启动智能功能?
有没有办法在模板上重新创建 JSON 字符串并将其传递给函数?
你的javascript代码不知道HTML是如何生成的,无论是从PHP/Smarty还是任何其他方式。
您可以做的是对服务器进行 AJAX 调用以获取新生成的 HTML,并将其注入到您想要的任何位置:
$('.yourCheckbox').change(function(event){
// you get 'someParam' from either your checkbox status, or from the surrounding form...it's up to you
$.get('path/to/your/script', { someParam : someValue }, function(data){
// inject received html into a proper div
$('someSelector').html(data);
});
});
然后,您需要了解以下内容:
- 不编写内联 js [例如
onclick=...
; - 使用正确的路由系统,而不是普通的
path/to/myScript.php
.
我使用的解决方案是使用 SessionStorage,因为该项目中的所有用户都必须升级他们的浏览器。实际上它绑定到Chrome,所以在这种情况下,这是将一些JSON字符串传递给JS-Function的最佳方式。
有了这个,我可以在检查事件上调用JS-Functions,该函数将数据获取/设置到存储,以后可以轻松地让它决定进一步做什么。
感谢您的帮助:)
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- jQuery滚动功能只工作一次
- Graphiti中是否有任何工具提示功能
- React redux初始化功能,无论状态变化如何
- 通过单击复选框启动智能功能
- 停用智能街道功能
- 是否有JS功能可以使Brightcove智能播放器视频开始播放
- 免费的Javascript+Jquery IDE?功能如-智能感应等
- 让onClick属性和点击功能在触摸屏(智能手机)上工作
- 需要智能感知或自动完成功能为我自己的javascript文件