关于在对象内部修改属性的问题

var index = {

validate: function () {
    $("#uploadmodal").on('shown.bs.modal', function () {
        $("#submit").on('click', function (event) {
            event.stopPropagation();
            if (index.validPhoto){
                alert('success');
                console.log(index.validPhoto);
            }else {
                alert('error');
                console.log(index.validPhoto);
            }
        })
    });
},
validPhoto:null,
_validateFile: function () {
    $('#inputfile').checkFileTypeAndSize({
        allowedExtensions: ['txt','png'],
        maxSize: 5000,
        success: function() {
            index[validPhoto] = true;
        },
        extensionerror: function() {
            alert('允许的格式为:txt,png !');
            index[validPhoto] = false;
        },
        sizeerror: function() {
            alert('最大尺寸500KB !');
            index.validPhoto = false;
        }
    });
},

}
我想通过下面的函数验证文件是否符合规则,想法是通过验证规则修改validphoto,之后将validphoto传入,但是修改不成功,求指点 是不是这种写法就不对呢

阅读 2k
2 个回答
<style type="text/css">
    #test,#check {
        width: 100px;
        height: 100px;
        background: gray;
        color: #fff;
        margin-bottom: 10px;
    }
</style>
<div id="test">test</div>
<div id="check">check</div>
<script type="text/javascript">
var index = {
    validate: function () {
        console.log(index.validPhoto);
        var test = document.getElementById("test");
        index._validateFile();
        test.addEventListener("click", function() {
            console.info("validPhoto's value is " + index.validPhoto);
        });
    },
    validPhoto:null,
    _validateFile: function () {
        console.log(index.validPhoto);
        var check = document.getElementById("check");
        check.addEventListener("click", function() {
            var random = Math.ceil(Math.random(1) * 10);
            if(random % 2 == 0) {
                index.validPhoto = true;
            }
            else {
                index.validPhoto = false;
            }
            console.log(random);
        });
        console.log(index.validPhoto);

    }
}
index.validate();
</script>

我准备在chrome 53 下是没有问题,可以运行的.

我这边说一点:

1) index[validPhoto]

不要这样写,你并没有声明 validPhoto 这个变量,有的只是index的属性.

2) 记得要初始化。

是应为没有初始化的原因

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题