jQuery追加刀片模板语法

jQuery追加刀片模板语法,jquery,laravel,blade,Jquery,Laravel,Blade,我有一个表格,包括以下两个要素以及其他4个要素: <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label for="st1a">State</label> <select class="form-control st1a"> @for

我有一个表格,包括以下两个要素以及其他4个要素:

<div class="row">
    <div class="col-sm-6">
        <div class="form-group">
            <label for="st1a">State</label>
            <select class="form-control st1a">
                @foreach (Format::states() as $state)
                    <option> {{ $state }} </option>
                @endforeach
            </select>
        </div>
    </div>
    <div class="col-sm-6">
        <div class="form-group">
            <label for="zc1a">Zip Code</label>
            <input type="text" class="form-control zc1a">
        </div>
    </div>
</div>

状态
@foreach(格式::states()为$state)
{{$state}}
@endforeach
邮政编码
Format::states()
只返回所有50个州缩写的数组。在表单中,用户提供地址历史记录

这意味着他们需要有能力点击我的glypicon plus符号,它附加了一个相同的新表单

但是,当追加此表单时,它会在select中追加
{{{$state}}
,作为唯一选项。我明白为什么


是否有办法解决这个问题,并让它循环并显示select中的状态?

由于浏览器不理解blade语法(如您在评论中所述),您需要以某种方式获取解析的html。这样做的一种方法就是这样

var html = $('.row').parent().html();
$('.address_history').append(html);
<div class="template" style="display: none;">
    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label for="st1a">State</label>
                <select class="form-control" id="st1a">
                    @foreach (Format::states() as $state)
                    <option> {{ $state }}</option>
                    @endforeach
                </select>
            </div>
        </div>
        <div class="col-sm-6">
            <div class="form-group">
                <label for="zc1a">Zip Code</label>
                <input type="text" class="form-control" id="zc1a">
            </div>
        </div>
    </div>
</div>
但是,这可能不起作用,例如,如果加载页面时没有任何行。如果是这种情况,则需要有一个模板行,该行可用于打印新行,并且始终包含在模板行中。像这样的

var html = $('.row').parent().html();
$('.address_history').append(html);
<div class="template" style="display: none;">
    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label for="st1a">State</label>
                <select class="form-control" id="st1a">
                    @foreach (Format::states() as $state)
                    <option> {{ $state }}</option>
                    @endforeach
                </select>
            </div>
        </div>
        <div class="col-sm-6">
            <div class="form-group">
                <label for="zc1a">Zip Code</label>
                <input type="text" class="form-control" id="zc1a">
            </div>
        </div>
    </div>
</div>

这应该行得通。您介意添加用于添加新行的javascript函数吗?$('.add_-ah')。单击(函数(){$('.address_-history')。追加('//all html here');})
.add_h
是加号图标,
.address_history
是包含所有添加表单的div。这可能是因为加载页面时会运行刀片模板,jQuery会将内容作为HTML追加,对吗?不过肯定有其他选择,没错!我现在正在写一个答案,这个答案适用于美国。非常感谢你。然而我有一个类的另一个输入(用于日期),我使用一个屏蔽JS文件来屏蔽日期并强制它为mm/dd/yyyy。但是,当我附加新内容时,它并没有被屏蔽。还有什么需要做的吗?当然!屏蔽插件不知道最近添加的html。不过,只需重新初始化它就可以了。如果您有问题,请告诉我您正在使用哪个插件,我可以看看是否可以为您提供帮助。然后,您只需在添加新行后再次调用mask函数,例如
$(.date”).mask(“99/99/9999”)