需求:点击按钮新增指定表单,可动态删除,新增上限为10条
定义模板:.
完整代码及样式
<div class="customer-dialog">
<el-dialog
:title="title"
:visible.sync="dialogVisible"
:before-close="cancel"
width="52.5%"
:destroy-on-close="true"
:close-on-click-modal="false"
>
<el-form
ref="form"
class="customer-form"
:model="form"
label-width="97px"
:inline="true"
:rules="rules"
label-suffix=":"
>
<el-form-item label="客户名称" prop="customerName" class="form-style">
<el-input v-model.trim="form.customerName" placeholder="请输入" maxlength="30" size="small" class="input-style" />
</el-form-item>
<el-form-item label="客户代码" prop="customerCode" class="form-style">
<el-input v-model.trim="form.customerCode" placeholder="请输入" maxlength="30" size="small" class="input-style" />
</el-form-item>
<el-form-item label="账期" prop="payment" class="form-style">
<el-input v-model.trim="form.payment" placeholder="请输入" maxlength="30" size="small" class="input-style" />
</el-form-item>
<el-form-item label="结算币种" prop="" class="form-style">
<el-select v-model="form.currency" placeholder="请选择" size="small">
<el-option
v-for="item in currencyTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="所属地区" prop="" class="form-style">
<el-select v-model="form.currency" placeholder="请选择" size="small">
<el-option
v-for="item in currencyTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="开户行" prop="" class="address form-style" style="width:100%">
<el-input v-model.trim="form.phone" placeholder="请输入" maxlength="50" size="small" style="width:100%" />
</el-form-item>
<el-form-item label="账号" prop="" class="address form-style" style="width:100%">
<el-input v-model.trim="form.phone" placeholder="请输入" maxlength="50" size="small" style="width:100%" />
</el-form-item>
<el-form-item label="税号" prop="" class="address form-style" style="width:100%">
<el-input v-model.trim="form.phone" placeholder="请输入" maxlength="50" size="small" style="width:100%" />
</el-form-item>
<!-- 特殊表单 -->
<div v-for="(item, index) in form.dynamicItem" :key="index" style="height: 51px">
<el-form-item label="联系人" class="form-style">
<el-input v-model="item.name" size="small" class="special-style" />
</el-form-item>
<el-form-item
label="联系电话"
class="form-style"
:prop="'dynamicItem.' + index + '.phone'"
:rules="[
{required: false, message: '手机号不能为空', trigger: 'blur'},
{ pattern: /^1[34578]\d{9}$/, message: '目前只支持中国大陆的手机号码' }
]"
>
<el-input v-model="item.phone" size="small" class="special-style" />
</el-form-item>
<el-form-item label="收货地址" class="form-style">
<el-input v-model="item.address" size="small" class="special-style" />
</el-form-item>
<el-form-item>
<el-button v-if="index+1 == form.dynamicItem.length" type="primary" size="mini" @click="addItem(form.dynamicItem.length)">+</el-button>
<el-button v-if="index !== 0" type="danger" size="mini" @click="deleteItem(item, index)">-</el-button>
</el-form-item>
</div>
<!-- *** -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="cancel">取 消</el-button>
<el-button size="small" type="primary" @click="handleSave('form')">保 存</el-button>
</div>
</el-dialog>
</div>
data中定义:
data(){
return{
form: {
dynamicItem: [
//默认显示一条
{
name: '',
phone: '',
address: ''
}
]
}
}
}
methods中定义方法:
methods:{
//新增方法
addItem(length) {
if (length >= 10) {
this.$message({
type: 'warning',
message: '最多可新增10条!'
})
} else {
this.form.dynamicItem.push({
name: '',
phone: '',
address: ''
})
}
},
//删除方法
deleteItem(item, index) {
this.form.dynamicItem.splice(index, 1)
},
}
样式:
<style lang="scss">
.customer-dialog{
.customer-form{
height: 320px;
overflow-y: auto;
overflow-x: hidden;
}
.address{
.el-form-item__content{
width: 89%;
}
.el-input__inner{
width: 100%;
}
}
.form-style{
margin-bottom: 10px;
.input-style{
width: 215px;
}
.special-style{
width: 194px;
}
}
/**滚动条的宽度*/
::-webkit-scrollbar {
width: 8px;
}
//滚动条的滑块
::-webkit-scrollbar-thumb {
background-color: #ccc;
border-radius: 5px;
}
}
</style>
看效果:
默认状态:

点击新增:

动态删减,非常的完美。
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife
我知道您通常应该在Rails中使用新建/创建和编辑/更新之间的链接,但我有一个情况需要其他东西。无论如何我可以实现同样的连接吗?我有一个模型表单,我希望它发布数据(类似于新View如何发布到创建操作)。这是我的表格prohibitedthisjobfrombeingsaved: 最佳答案 使用:url选项。=form_for@job,:url=>company_path,:html=>{:method=>:post/:put} 关于ruby-on-rails-rails:Howtomak
我有一个服务模型/表及其注册表。在表单中,我几乎拥有服务的所有字段,但我想在验证服务对象之前自动设置其中一些值。示例:--服务Controller#创建Action:defcreate@service=Service.new@service_form=ServiceFormObject.new(@service)@service_form.validate(params[:service_form_object])and@service_form.saverespond_with(@service_form,location:admin_services_path)end在验证@ser
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道rubyonrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim
我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模
基本上,我试图在用户单击链接(或按钮或某种类型的交互元素)时执行Rails方法。我试着把它放在View中:但这似乎没有用。它最终只是在用户甚至没有点击“添加”链接的情况下调用该函数。我也用link_to试过了,但也没用。我开始认为没有一种干净的方法可以做到这一点。无论如何,感谢您的帮助。附言。我在ApplicationController中定义了该方法,它是一个辅助方法。 最佳答案 View和Controller是相互独立的。为了使链接在Controller内执行函数调用,您需要对应用程序中的端点执行ajax调用。该路由应调用rub
我在ruby表单中有一个提交按钮f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id"我想在不使用任何javascript的情况下通过ruby禁用此按钮 最佳答案 添加disabled:true选项。f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id",disabled:true 关于ruby-on-rails-如何在Rails中添加禁用的提交按钮,我们在St