diff --git a/src/vpu-pdf-preview.js b/src/vpu-pdf-preview.js
index 4971ecbdd2eb17a4c9e8c00ceeced7cabcfcae7e..ad9d0c40030d4f443e50cfc37e1f78d8803417b8 100644
--- a/src/vpu-pdf-preview.js
+++ b/src/vpu-pdf-preview.js
@@ -1,6 +1,7 @@
 import {createI18nInstance} from './i18n.js';
 import {css, html} from 'lit-element';
 import {classMap} from 'lit-html/directives/class-map.js';
+import {live} from 'lit-html/directives/live.js';
 import {ScopedElementsMixin} from '@open-wc/scoped-elements';
 import VPULitElement from 'vpu-common/vpu-lit-element';
 import {MiniSpinner} from 'vpu-common';
@@ -77,16 +78,6 @@ export class PdfPreview extends ScopedElementsMixin(VPULitElement) {
             //     that.showPDF(this.files[0]);
             // });
 
-            // change on page input
-            this._("#pdf-page-no").addEventListener('input', async () => {
-                const page_no = parseInt(that._("#pdf-page-no").value);
-                console.log('page_no = ', page_no);
-
-                if (page_no > 0 && page_no <= that.totalPages) {
-                    await that.showPage(page_no);
-                }
-            });
-
             // redraw page if window was resized
             window.onresize = async () => {
                 await that.showPage(that.currentPage);
@@ -152,6 +143,16 @@ export class PdfPreview extends ScopedElementsMixin(VPULitElement) {
         });
     }
 
+    async onPageNumberChanged(e) {
+        let obj = e.target;
+        const page_no = parseInt(obj.value);
+        console.log('page_no = ', page_no);
+
+        if (page_no > 0 && page_no <= this.totalPages) {
+            await this.showPage(page_no);
+        }
+    }
+
     /**
      * Initialize and load the PDF
      *
@@ -435,7 +436,11 @@ export class PdfPreview extends ScopedElementsMixin(VPULitElement) {
                                     title="${i18n.t('pdf-preview.previous-page')}"
                                     @click="${async () => { if (this.currentPage > 1) await this.showPage(--this.currentPage); } }"
                                     ?disabled="${this.isPageRenderingInProgress || this.currentPage === 1}">${i18n.t('pdf-preview.previous')}</button>
-                            <input type="number" id="pdf-page-no" min="1" max="${this.totalPages}" value="${this.currentPage}">
+                            <input type="number"
+                                   min="1"
+                                   max="${this.totalPages}"
+                                   @input="${this.onPageNumberChanged}"
+                                   .value="${live(this.currentPage)}">
                             <button class="button"
                                     title="${i18n.t('pdf-preview.next-page')}"
                                     @click="${async () => { if (this.currentPage < this.totalPages) await this.showPage(++this.currentPage); } }"