問題
在 vue+element ui 中只有一個輸入框(el-input)的情況下,回車會提交表單。
解決方案
在 el-form 上加上 @submit.native.prevent 這個則會阻止表單回車提交。
測試
下面的代碼出現表單回車提交
<body> <div id="app"> <el-form ref="form" :model="form" label-width="80px"> <el-form-item label="活動名稱"> <el-input v-model="form.name"></el-input> </el-form-item> </el-form> </div> <!-- 引入組件庫 --> <script type="text/javascript" src="${ctx}/static/common/js/vue.js"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script type="text/javascript"> new Vue({ el: "#app", data: { form : { } } }); </script> </body>
下面的代碼不會出現回車表單提交:el-form 中加上@submit.native.prevent
<body> <div id="app"> <el-form ref="form" :model="form" label-width="80px" @submit.native.prevent > <el-form-item label="活動名稱"> <el-input v-model="form.name"></el-input> </el-form-item> </el-form> </div> <!-- 引入組件庫 --> <script type="text/javascript" src="${ctx}/static/common/js/vue.js"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script type="text/javascript"> new Vue({ el: "#app", data: { form : { } } }); </script> </body>
下面的代碼也不會出現回車表單提交:使用兩個 el-input
<body> <div id="app"> <el-form ref="form" :model="form" label-width="80px"> <el-form-item label="活動名稱"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="即時配送"> <el-input v-model="form.delivery"></el-input> </el-form-item> </el-form> </div> <!-- 引入組件庫 --> <script type="text/javascript" src="${ctx}/static/common/js/vue.js"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script type="text/javascript"> new Vue({ el: "#app", data: { form : { } } }); </script> </body>