还有一个问题,我们使用form表单如何传输数字呢?
如下例子:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>收集表单</title></head><body><script type="text/javascript" src="https://unpkg.com/vue/dist/vue.js"> </script><div id="app"><form action="" @submit.prevent="myfunc">输入您的年龄<input type="text" v-model="name"><button>提交</button></form></div><script type="text/javascript">var vm = new Vue({el:"#app",data:{name:18,},methods:{myfunc(){alert( this.name)}}})</script></body></html>
但是上面的会有一个问题
我们可以在年龄窗口随意输入文字,我们更希望只能输入数字,怎么限制这点???
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>收集表单</title>
</head>
<body>
<script type="text/javascript" src="https://unpkg.com/vue/dist/vue.js"> </script>
<div id="app">
<form action="" @submit.prevent="myfunc">
输入您的年龄<input type="number" v-model="name">
<button>提交</button>
</form>
</div>
<script type="text/javascript">
var vm = new Vue({
el:"#app",
data:{
name:18,
},
methods:{
myfunc(){
//我们发现其实这里面仍然是string
console.log(typeof this.name)
}
}
})
</script>
</body>
</html>
我们发现我们即使修改了input类型为number,之后typeof this.name仍然是string
所以上面的操作只是说我们input框中不能输入字母,但是其实最终保存的仍然是string
那么我们可以使用v-model.number来实现
<script type="text/javascript" src="https://unpkg.com/vue/dist/vue.js"> </script>
<div id="app">
<form action="" @submit.prevent="myfunc">
输入您的年龄<input type="number" v-model.number="name">
<button>提交</button>
</form>
</div>
