老师问个课外的问题
value一直都是undefined,获取不到输入框的内容,求老师帮忙看一下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>信息设置</title>
<link rel="stylesheet" type="text/css" href="../css/setting.css">
<link rel="stylesheet" href="../css/element-ui.css">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../js/vue.min.js"></script>
<script src="../js/element-ui.js"></script>
</head>
<body>
<div class="main">
<div class="title">用户信息管理</div>
<div class="container">
<div v-for="(user,index) in users" class="userList">
<div class="userName"><strong>用户名:</strong>{{user.username}}</div>
<div class="passWord"><strong>密码: </strong>{{user.password}}</div>
<div class="changeBtn"><el-button type="primary" @click="change(user)" class="btn">修改密码</el-button></div>
</div>
<el-dialog title="修改密码" :visible.sync="update" width="60%">
<div class="content">
<el-form :model="form" ref="form" label-width="20%" :rules="rules" style="width: 100%;">
<el-form-item label="原密码:" prop="originalpassword">
<el-input v-model="form.originalPassword" auto-complete="off" style="width:50%" />
</el-form-item>
<el-form-item label="新密码:" prop="newpassword">
<el-input v-model="form.newPassword" auto-complete="off" style="width:50%" />
</el-form-item>
<el-form-item label="确认密码:" prop="confirmpassword">
<el-input v-model="form.confirmPassword" auto-complete="off" style="width:50%" />
</el-form-item>
</el-form>
</div>
<span slot="footer">
<el-button @click="update = false">取 消</el-button>
<el-button type="primary" @click="updatesure">确 定</el-button>
</span>
</el-dialog>
</div>
</div>
<script type="text/javascript">
new Vue({
el: '.main',
data:function() {
var validatePass = (rule, value, callback) => {
console.log(value);
if (!value) {
callback(new Error('密码不能为空'));
} else if (value !=this.users[0].password) {
callback(new Error('密码错误!'))
} else {
callback();
}
};
var validatePass1 = (rule, value, callback) => {
if (!value) {
callback(new Error('密码不能为空'));
} else if (value.toString().length < 6 || value.toString().length > 18) {
callback(new Error('密码长度为6 - 18个字符'))
} else {
callback();
}
};
var validatePass2 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value != this.form.newPassword) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
return {
form: {
// id:'',
originalPassword:'',
newPassword:'',
confirmPassword:''
},
users:[{id:1,username:'admin',password:'123456'}],
update:false,
rules: {
originalpassword: [
{ required: true, validator: validatePass, trigger: 'blur' }
],
newpassword: [
{ required: true, validator: validatePass1, trigger: 'blur' }
],
confirmpassword: [
{ required: true, validator: validatePass2, trigger: 'blur' }
]
}
}
},
methods: {
change(user) {
this.update=true;
},
updatesure(){
var _this = this;
_this.$refs['form'].validate(function(valid) {
if(valid) {
this.update=false;
var _this=this;
$.ajax({
url:"http://127.0.0.1/user/updatePassword", //请求的url地址
dataType:"json", //返回格式为json
async:true,//请求是否异步,默认为异步,这也是ajax重要特性
contentType:'application/json',
data:JSON.stringify(_this.form), //参数值
type:"post", //请求方式
success:function(data){
_this.goods=data;
_this.$message("修改成功");
_this.getUser();
}
});
}
});
},
getUser(){
var _this=this;
$.ajax({
url:"http://127.0.0.1/user/selectRun", //请求的url地址
dataType:"json", //返回格式为json
async:true,//请求是否异步,默认为异步,这也是ajax重要特性 //参数值
type:"get", //请求方式
success:function(data){
_this.users=data.data;
}
});
}
},
created(){
this.getUser();
}
});
</script>
</body>
</html>*{
margin: 0;
padding: 0;
}
/*修改密码整个页面的位置*/
.main{
width: 1000px;
/*height: 450px;*/
margin-top: 20px;
margin-left: 50px;
/*border: 1px red solid;*/
}
/*页面内的标题*/
.main .title{
}
.userList{
width: 100%;
height:100px;
margin-top:2%;
/*border: 1px rgb(3,184,204) solid;*/
line-height: 100px;
/*border-radius: 30px;*/
}
.userList .userName{
float: left;
width: 25%;
margin-left: 20px;
}
.userList .passWord{
float: left;
width: 25%;
}
.userList .changeBtn{
float: left;
width: 25%;
text-align: right;
}
.userList .changeBtn .btn{
background-color: rgb(3,184,204);
}
.container .content{
margin-left: 10%;
width: 100%;
}0
收起
正在回答
1回答
同学你好,代码中单词大小写不一致:

和prop属性值应该一样,要细心一些。
建议同学遇到问题多独立思考一下,以后工作中遇到问题不可能全部都会问同事或者其他人,要培养自己解决问题的能力。还有这一部分代码老师可以测试,如果遇到多的,不能测试的,老师也帮不到你了。加油~
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星