业务场景:input做成支持select下拉选,支持自定义输入,模糊搜索+匹配,但是input框失去焦点时
不能保留用户自定义的输入,要清空,类似于校验用户输入数据合法性。
先给input框绑定blur事件,Backbone中在event中绑定定义
events : {
"blur #materialCode":"changeInputVal"
},
即先将数据集合准备好,再根据用户输入的input中的值循环数组;
使用 xxx(数组).indexOf(); 判断,不在则返回-1;
changeInputVal:function () {
var _this = this;
var inputCodeValue = _this.$("#materialCode").val(); //input用户输入
var testValue = []; //数组
for (var i in _this.srmItemList){
testValue.push(_this.srmItemList[i].itemNo)
}
//通过indexOf判断用户输入的数据是否在数组中,不在则返回-1,然后清空input框,在则不清空
if(testValue.indexOf(inputCodeValue) == -1){
document.getElementById('materialCode').value = "";
}
},
还有别的方式,以后再补充。
仅供参考~