diff --git a/src/calendar/index.js b/src/calendar/index.js
index <HASH>..<HASH> 100644
--- a/src/calendar/index.js
+++ b/src/calendar/index.js
@@ -281,9 +281,11 @@ export default createComponent({
     },
 
     onConfirm() {
-      if (this.checkRange()) {
-        this.$emit('confirm', this.currentDate);
+      if (this.range && !this.checkRange()) {
+        return;
       }
+
+      this.$emit('confirm', this.currentDate);
     },
 
     genMonth(date, index) {
fix(Calendar): should not check range in single mode