Files
label/app.js

40 lines
1.3 KiB
JavaScript

// DOM Elements
const labelForm = document.getElementById('labelForm');
const printBtn = document.getElementById('printBtn');
// Inputs
const itemName = document.getElementById('itemName');
const itemPrice = document.getElementById('itemPrice');
const itemNotes = document.getElementById('itemNotes');
// Preview Elements
const previewName = document.getElementById('previewName');
const previewPrice = document.getElementById('previewPrice');
const previewNotes = document.getElementById('previewNotes');
// Live Preview Updater
const updatePreview = () => {
previewName.textContent = itemName.value || 'ITEM NAME';
previewPrice.textContent = itemPrice.value || 'Rp 0';
previewNotes.textContent = itemNotes.value || 'Notes here';
};
itemName.addEventListener('input', updatePreview);
itemPrice.addEventListener('input', updatePreview);
itemNotes.addEventListener('input', updatePreview);
// Print Logic (System Print)
labelForm.addEventListener('submit', (e) => {
e.preventDefault();
// Quick validation
if (!itemName.value || !itemPrice.value) {
alert("Please fill name and price.");
return;
}
// Call the browser's native print dialog
// The CSS @media print rules will hide everything except the label wrapper
window.print();
});