Merge branch 'demo-code-validation' into 'master'
Blokiraj Enter Code button na payment page-u dok se validacija ne zavrsi See merge request kbr4/riskletpy!65
This commit was merged in pull request #114.
This commit is contained in:
@@ -26,6 +26,8 @@
|
|||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="w-full bg-accent text-primary hover:bg-yellow-400 font-bold py-3 px-8 rounded-lg shadow-lg text-lg transition-all duration-200 ease-in-out transform hover:scale-105"
|
class="w-full bg-accent text-primary hover:bg-yellow-400 font-bold py-3 px-8 rounded-lg shadow-lg text-lg transition-all duration-200 ease-in-out transform hover:scale-105"
|
||||||
|
id="submit-btn"
|
||||||
|
disabled
|
||||||
>
|
>
|
||||||
Enter Code
|
Enter Code
|
||||||
</button>
|
</button>
|
||||||
@@ -42,13 +44,30 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
const status = document.getElementById('code-status');
|
const status = document.getElementById('code-status');
|
||||||
const codeError = document.getElementById('code-error');
|
const codeError = document.getElementById('code-error');
|
||||||
const backendError = document.getElementById('backend-error');
|
const backendError = document.getElementById('backend-error');
|
||||||
|
const submitBtn = document.getElementById('submit-btn');
|
||||||
|
|
||||||
|
function disableBtn() {
|
||||||
|
submitBtn.disabled = true;
|
||||||
|
submitBtn.classList.add('opacity-50', 'cursor-not-allowed');
|
||||||
|
}
|
||||||
|
|
||||||
|
function enableBtn() {
|
||||||
|
submitBtn.disabled = false;
|
||||||
|
submitBtn.classList.remove('opacity-50', 'cursor-not-allowed');
|
||||||
|
}
|
||||||
|
|
||||||
|
disableBtn();
|
||||||
|
|
||||||
input.addEventListener('input', function() {
|
input.addEventListener('input', function() {
|
||||||
status.innerHTML = '';
|
status.innerHTML = '';
|
||||||
codeError.innerHTML = '';
|
codeError.innerHTML = '';
|
||||||
if (backendError) backendError.style.display = 'none';
|
if (backendError) backendError.style.display = 'none';
|
||||||
const code = input.value.trim();
|
const code = input.value.trim();
|
||||||
if (code.length === 0) return;
|
if (code.length === 0) {
|
||||||
|
disableBtn();
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
disableBtn();
|
||||||
|
|
||||||
status.innerHTML = `<svg class="animate-spin h-6 w-6 text-accent" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
status.innerHTML = `<svg class="animate-spin h-6 w-6 text-accent" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||||
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||||
@@ -68,13 +87,16 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
status.innerHTML = '';
|
status.innerHTML = '';
|
||||||
if (data.valid) {
|
if (data.valid) {
|
||||||
codeError.innerHTML = '<span class="text-green-600">✅ Valid code</span>';
|
codeError.innerHTML = '<span class="text-green-600">✅ Valid code</span>';
|
||||||
|
enableBtn();
|
||||||
} else {
|
} else {
|
||||||
codeError.innerHTML = '<span class="text-red-600">❌ Invalid code</span>';
|
codeError.innerHTML = '<span class="text-red-600">❌ Invalid code</span>';
|
||||||
|
disableBtn();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
status.innerHTML = '';
|
status.innerHTML = '';
|
||||||
codeError.innerHTML = '<span class="text-red-600">❌ Error checking code</span>';
|
codeError.innerHTML = '<span class="text-red-600">❌ Error checking code</span>';
|
||||||
|
disableBtn();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user