参考链接:https://cn.vuejs.org/v2/guide/index.html
*)[Vue warn]: Error in v-on handler: "TypeError: $form.postJSON is not a function"
[Vue warn]: Error in v-on handler: "TypeError: $form.postJSON is not a function"
(found in <Root>)
warn @ vue.js:634
logError @ vue.js:1893
globalHandleError @ vue.js:1888
handleError @ vue.js:1848
invokeWithErrorHandling @ vue.js:1871
invoker @ vue.js:2188
original._wrapper @ vue.js:7541
#错误2
vue.js:1897 TypeError: $form.postJSON is not a function
at Vue.submit (forTest.html:94)
at invokeWithErrorHandling (vue.js:1863)
at HTMLFormElement.invoker (vue.js:2188)
at HTMLFormElement.original._wrapper (vue.js:7541)
报错代码
var vms = new Vue({
el: '#vm',
data: {
email: '',
passwd: ''
},
methods: {
submit: function (event) {
console.log(1);
event.preventDefault();//和form中添加v-on:submit.prevent="submit"是一样的
var
$form = $('#vm'),
email = this.email.trim().toLowerCase(),
data = {
email: email,
passwd: this.passwd === '' ? '' : CryptoJS.SHA1(email + ':' + this
.passwd).toString()
};
$form.postJSON('/api/authenticate', data, function (err, result) {
if (!err) {
console.log(2);
// location.assign('/');
}
});
}
}
});
应该是$form.postJson()中的数据写法除了问题,参考https://blog.youkuaiyun.com/qq_36370731/article/details/80290680
*)必须把js代码写进body里的script里,是因为代码没有自动执行(未解决,一引入jquery(或者uikit的js)就不行了)
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$(function () {//必须放在这里
console.log(2);
var app2 = new Vue({
el: '#app-2',
data: {
message: '页面加载于 ' + new Date().toLocaleString()
}
})
})
更新:必须把这个写进body里的script里的标签里,就算只有一个vue也必须这样,否则会未定义vue名,像下面这个自动提示时证明成功了