<div class="form-group col-lg-12">
<label class="control-label col-lg-3 text-right">类型:</label>
<div style="margin-top:6px">
<input type="radio" name="type" value="1" checked /><label>全场券</label>&nbsp;&nbsp;
<input type="radio" name="type" value="2" /><label>单类券</label>&nbsp;&nbsp;
<input type="radio" name="type" value="3" /><label>单品券</label>&nbsp;&nbsp;
</div>
</div>

增加点击事件

// 点击事件
$("[name=type]:radio").click(function(){
let type = $(this).val();
let html = template('type-tpl', {data:{type:type}});
$('#type-cont').html(html);
});

留一个容器

<!-- 类型容器 -->
<div id="type-cont"> </div>

模板

<script id="type-tpl" type="text/template">
{{ if data.type == 1 }}
{{ else if data.type == 2}}
<div class="form-group col-lg-12">
<label class="control-label col-lg-3 text-right"><span class="control-label required-mark">*</span>选择单类:</label>
<span class="input-group input-group-option">
<select name="type_id" id="type_id" class="form-control" style="position: relative; left:-4px;z-index: 1;border-radius:3px;" aria-describedby="object">
<option value="0">--请选择--</option>
<volist name="type_id_name" id="vo">
<option value="{$vo.id}" <?php if($result['type_id'] == $vo['id']){echo "selected";} ?> >{$vo.name}</option>
</volist>
</select>
</span>
</div>
{{ else if data.type == 3}}
<div class="form-group col-lg-12">
<label class="control-label col-lg-3 text-right"><span class="control-label required-mark">*</span>选择单品:</label>
<span class="input-group input-group-option">
<select name="pid" id="pid" class="form-control" style="position: relative; left:-4px;z-index: 1;border-radius:3px;" aria-describedby="object">
<option value="0">--请选择--</option>
<volist name="product_id_name" id="vo">
<option value="{$vo.id}" <?php if($result['pid'] == $vo['id']){echo "selected";} ?> >{$vo.name}【ID-{$vo.id}】</option>
</volist>
</select>
</span>
</div>
<div id="sku-cont"></div>
{{ /if }}
</script> <script id="sku-tpl" type="text/html">
<div class="form-group col-lg-12">
<label class="control-label col-lg-3 text-right"><span class="control-label required-mark"></span>适用规格:</label>
<span class="input-group input-group-option">
<select name="sku_id" id="sku_id" class="form-control" style="position: relative; left:-4px;z-index: 1;border-radius:3px;" aria-describedby="object">
<option value="0">全部</option>
{{ each data }}
<option value="{{ $value.id }}">{{ $value.name }}</option>
{{ /each }}
</select>
</span>
</div>
</script>

模板中可以直接使用php模板,也可以用art语法。

选择商品,添加事件

// 选择商品事件
$(document).on('change','#pid',function(){
let pid = parseInt($(this).val());
if (pid > 0) {
// 异步获取商品规格
$.ajax({
type: 'POST',
url: 'ajax_get_sku',
data: {pid: pid},
dataType: 'json',
success: function (data) {
if (data.errno == 0) {
let html = template('sku-tpl', {data:data.data});
$('#sku-cont').html(html);
} else {
layer.msg(data.errdesc, {icon: 5});
return false;
}
}
});
} else {
$('#sku-cont').html('');
}
});

jQ结合模板,可以实现很多灵活的效果!!!非常的好用!!!直接jQ就没那么便利了!!!

有了art-template,如有神助的更多相关文章

  1. art template前端模板引擎

    偶然看到后台有一段代码 采用的是art template的模板引擎 地址为 http://aui.github.io/artTemplate/ 这段代码很简洁 var html = template( ...

  2. art.template 循环里面分组。

    后台提供给我们一个数组,我们要用模版实现上面的格式输出怎么版呢? 下面就是解决方案: <h2>循环4个一组</h2> <script type="text/ht ...

  3. 利用art.template模仿VUE 一次渲染多个模版

    TypeScript代码 import template = require('art-template/lib/template-web'); interface TemplateBindConfi ...

  4. 利用art.template模仿VUE

    首先先看一下Typescript代码: import template = require('art-template/lib/template-web'); interface TemplateBi ...

  5. js 模板引擎 -Art Template

    一个例子涵盖所有: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

  6. awesome python 中文版 相见恨晚!

    awesome python 中文版 相见恨晚!   https://www.zhihu.com/question/24590883 这篇知乎厉害了!一定要学习! 作者:知乎用户链接:https:// ...

  7. python模块大全

    python模块大全2018年01月25日 13:38:55 mcj1314bb 阅读数:3049 pymatgen multidict yarl regex gvar tifffile jupyte ...

  8. C++ Primer学习笔记(一)

    始终对C++念念不忘,看过 一个32岁入门的70后程序员给我的启示  之后,心情激荡,更是一发不可收拾. 认真地说,我不是一个执着的人,见异思迁,好读书而不求甚解,兼之情绪化(~~ 某些方面),于是怒 ...

  9. Python3.x:第三方库简介

    Python3.x:第三方库简介 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex ...

随机推荐

  1. Com类型

    /* VARIANT STRUCTURE * * VARTYPE vt; * WORD wReserved1; * WORD wReserved2; * WORD wReserved3; * unio ...

  2. ES6知识整理(10)--class的继承

    (这是es6的第10篇文章.说真的这样的总结之后虽然直观了许多,但是消耗的时间有点长,或许是知识比较复杂的原因吧) 类的继承 有个A类,B类继承A类,那B类实例就可以使用A类实例的所以属性和方法.不包 ...

  3. usb帧格式

    源: usb帧格式

  4. mysql备份与恢复-xtracebackup

    因为percona打算放弃使用innobackupex备份工具,因此我们这里也说明一下innobackupex的兄弟工具xtraceback工具的使用 这个工具的安装可以参考上面的一些博文,上面详细说 ...

  5. Selenium+Headless Firefox

    背景 今天本地调试基于Selenium+PhantomJS的动态爬虫程序顺利结束后,着手部署到服务器上,刚买的热乎的京东云,噼里啪啦一顿安装环境,最后跑的时候报了这么个错误: UserWarning: ...

  6. Linux学习笔记之yum安装和卸载软件

    # yum -y install 包名(支持*) :自动选择y,全自动 # yum install 包名(支持*) :手动选择y or n # yum remove 包名(不支持*) # rpm -i ...

  7. java使用wait(),notify(),notifyAll()实现等待/通知机制

    public class WaitNotify { static boolean flag=true; static Object lock=new Object(); static class Wa ...

  8. Net中应用 Redis 扩展类

    GIt地址:https://gitee.com/loogn/stackexchange-redis-typedextensions 1.stackexchange 类调用 using System; ...

  9. 盒子总结,文本属性操作,reset操作,高级选择器,高级选择器优先级,边界圆角(了解),a标签的四大伪类,背景图片操作,背景图片之精灵图

    盒子总结 ''' block: 设置宽高 1.没有设置宽,宽自适应父级的宽(子级的border+padding+width=父级的width) 2.没有设置高,高由内容撑开 设置了宽高 一定采用设置的 ...

  10. JS实现复制页面文字弹出消息提醒

    先上效果图: 简洁版: <script type="text/javascript"> document.body.oncopy=function(){ alert(& ...