fastadmin 使用 bootstrap tabs 新增以及编辑 详解

新增

因为需要区分是那种类型的所以在表单中加入了一个隐藏字段 type 

我这里把type赋空 通过JQ来进行赋值,表单填写之后 切换 tabs之后填写内容也需要清空 在对应的js文件中的add方法里面进行修改(type 默认赋值0)

add: function () {
            $("input[name='row[type]']").val("0");
            $("#notice-tab").click(function (){
                $("input[name='row[title]']").val("");
                $("#c-content").val("");
                $("input[name='row[link_url]']").val("");
                $("input[name='row[type]']").val("0");
            });
            $("#info-tab").click(function (){
                $("input[name='row[title]']").val("");
                $("#c-content").val("");
                $("input[name='row[link_url]']").val("");
                $("input[name='row[type]']").val("1");
            });
            Controller.api.bindevent();
        },

新增表单代码

<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
    <ul class="nav nav-tabs" id="myTab" role="tablist">
        <li class="nav-item active" role="presentation">
            <a class="nav-link active" id="notice-tab" data-toggle="tab" href="#notice" role="tab" aria-controls="notice" aria-selected="true">平台公告</a>
        </li>
        <li class="nav-item" role="presentation">
            <a class="nav-link" id="info-tab" data-toggle="tab" href="#info" role="tab" aria-controls="info" aria-selected="false">系统消息</a>
        </li>
    </ul>
    <div style="margin-top: 20px"></div>

    <input type="hidden" name="row[type]" value="">
    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-title" class="form-control" name="row[title]" type="text">
        </div>
    </div>
    <div class="tab-content" id="myTabContent">
        <div class="tab-pane  active" id="notice" role="tabpanel" aria-labelledby="notice-tab">
            <div class="form-group">
                <label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
                <div class="col-xs-12 col-sm-8">
                    <textarea id="c-content" class="form-control editor" rows="5" name="row[content]" cols="50"></textarea>
                </div>
            </div>
        </div>
        <div class="tab-pane" id="info" role="tabpanel" aria-labelledby="info-tab">
            <div class="form-group">
                <label class="control-label col-xs-12 col-sm-2">{:__('Link_url')}:</label>
                <div class="col-xs-12 col-sm-8">
                    <input id="c-link_url" class="form-control" name="row[link_url]" type="text">
                </div>
            </div>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Time')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[time]" type="text" value="{:date('Y-m-d H:i:s')}">
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="0">
        </div>
    </div>

    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('State')}:</label>
        <div class="col-xs-12 col-sm-8">

            <div class="radio">
                {foreach name="stateList" item="vo"}
                <label for="row[state]-{$key}"><input id="row[state]-{$key}" name="row[state]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label>
                {/foreach}
            </div>

        </div>
    </div>
    <div class="form-group layer-footer">
        <label class="control-label col-xs-12 col-sm-2"></label>
        <div class="col-xs-12 col-sm-8">
            <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
        </div>
    </div>
</form>

 编辑

遇到的问题 :1、 编辑时tabs不默认选中   2.、编辑时表单不跟随tabs 更改

 解决技巧:1、根据 type判断当前tabs是哪一个来进行选中  2、默认选中tabs 之后不可切换tabs 

edit: function () {
            var val = $("input[name='row[type]']").val();
            if (val > 0 ){
                $('#myTab a[href="#info"]').tab('show');
                $('#myTab a[href="#notice"]').on('show.bs.tab', function(e) {//禁止切换tabs
                    e.preventDefault();
                });
            }else{
                $('#myTab a[href="#notice"]').tab('show');
                $('#myTab a[href="#info"]').on('show.bs.tab', function(e) {//禁止切换tabs
                    e.preventDefault();
                });
            }
        },

编辑表单代码

<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
    <ul class="nav nav-tabs" id="myTab" role="tablist">
        <li class="nav-item" role="presentation">
            <a class="nav-link" id="notice-tab" data-toggle="tab" href="#notice" role="tab" aria-controls="notice" aria-selected="true">平台公告</a>
        </li>
        <li class="nav-item" role="presentation">
            <a class="nav-link" id="info-tab" data-toggle="tab" href="#info" role="tab" aria-controls="info" aria-selected="false">系统消息</a>
        </li>
    </ul>
    <div style="margin-top: 20px"></div>

    <input type="hidden" name="row[type]" value="{$row.type|htmlentities}">
    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-title" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
        </div>
    </div>
    <div class="tab-content" id="myTabContent">
        <div class="tab-pane  active" id="notice" role="tabpanel" aria-labelledby="notice-tab">
            <div class="form-group">
                <label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
                <div class="col-xs-12 col-sm-8">
                    <textarea id="c-content" class="form-control editor" rows="5" name="row[content]" cols="50">{$row.content|htmlentities}</textarea>
                </div>
            </div>
        </div>
        <div class="tab-pane" id="info" role="tabpanel" aria-labelledby="info-tab">
            <div class="form-group">
                <label class="control-label col-xs-12 col-sm-2">{:__('Link_url')}:</label>
                <div class="col-xs-12 col-sm-8">
                    <input id="c-link_url" class="form-control" name="row[link_url]" type="text" value="{$row.link_url|htmlentities}">
                </div>
            </div>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Time')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[time]" type="text" value="{:$row.time?datetime($row.time):''}">
        </div>
    </div>

    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="{$row.weigh|htmlentities}">
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('State')}:</label>
        <div class="col-xs-12 col-sm-8">
            
            <div class="radio">
            {foreach name="stateList" item="vo"}
            <label for="row[state]-{$key}"><input id="row[state]-{$key}" name="row[state]" type="radio" value="{$key}" {in name="key" value="$row.state"}checked{/in} /> {$vo}</label> 
            {/foreach}
            </div>

        </div>
    </div>
    <div class="form-group layer-footer">
        <label class="control-label col-xs-12 col-sm-2"></label>
        <div class="col-xs-12 col-sm-8">
            <button type="submit" class="btn btn-primary btn-embossed">{:__('OK')}</button>
            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
        </div>
    </div>
</form>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值