扩展通过表达式来禁用button。重构了算法