values checking added
This commit is contained in:
@@ -141,7 +141,7 @@ function updateCalculateButton() {
|
|||||||
else {
|
else {
|
||||||
ret = inputsB["l"] !== null && inputsB["angle"] !== null
|
ret = inputsB["l"] !== null && inputsB["angle"] !== null
|
||||||
}
|
}
|
||||||
ret &= elements.outputR.checked || elements.outputH.checked ||elements.outputL.checked;
|
ret &= elements.outputR.checked || elements.outputH.checked || elements.outputL.checked;
|
||||||
|
|
||||||
elements.calculateButton.disabled = !ret;
|
elements.calculateButton.disabled = !ret;
|
||||||
}
|
}
|
||||||
@@ -209,6 +209,30 @@ function clearInputs() {
|
|||||||
}
|
}
|
||||||
elements.outputsTable.classList.add("hidden");
|
elements.outputsTable.classList.add("hidden");
|
||||||
}
|
}
|
||||||
|
function checkAngle(angleString) {
|
||||||
|
let angle = parseFloat(angleString);
|
||||||
|
if (isNaN(angle)) {
|
||||||
|
return "Введите корректное число";
|
||||||
|
}
|
||||||
|
if (angle <= 0) {
|
||||||
|
return "Угол должен быть больше 0";
|
||||||
|
}
|
||||||
|
if (angle >= 180) {
|
||||||
|
return "Угол должен быть меньше 180";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkLength(lengthString) {
|
||||||
|
let length = parseFloat(lengthString);
|
||||||
|
if (!isFinite(length)) {
|
||||||
|
return "Введите корректное число";
|
||||||
|
}
|
||||||
|
if (length <= 0) {
|
||||||
|
return "Длина должна быть больше 0";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
elements.outputsFieldset.addEventListener('change', function (event) {
|
elements.outputsFieldset.addEventListener('change', function (event) {
|
||||||
if (event.target.type === 'checkbox') {
|
if (event.target.type === 'checkbox') {
|
||||||
@@ -216,8 +240,10 @@ elements.outputsFieldset.addEventListener('change', function (event) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
elements.inputsForm.addEventListener('change', function (event) {
|
elements.inputsForm.addEventListener('change', handleInputEvent);
|
||||||
if (event.target.type === 'radio') {
|
elements.inputsForm.addEventListener('input', handleInputEvent);
|
||||||
|
|
||||||
|
function handleSwitchInputs(event) {
|
||||||
if (event.target.id[event.target.id.length - 1].toLowerCase() == "a") {
|
if (event.target.id[event.target.id.length - 1].toLowerCase() == "a") {
|
||||||
currentModeIsA = true;
|
currentModeIsA = true;
|
||||||
switchAppearance(true);
|
switchAppearance(true);
|
||||||
@@ -229,19 +255,53 @@ elements.inputsForm.addEventListener('change', function (event) {
|
|||||||
console.log("Switching inputs to B");
|
console.log("Switching inputs to B");
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if (event.target.type === 'number') {
|
}
|
||||||
|
|
||||||
|
function HandleInputsUpdate(event) {
|
||||||
switch (event.target.id) {
|
switch (event.target.id) {
|
||||||
case "equalSideLength":
|
case "equalSideLength":
|
||||||
inputsA.l = parseFloat(event.target.value) || 0;
|
{
|
||||||
|
const err = checkLength(event.target.value);
|
||||||
|
setErrTooltip(0, err);
|
||||||
|
if (err === "") {
|
||||||
|
inputsA.l = parseFloat(event.target.value);
|
||||||
|
} else {
|
||||||
|
inputsA.l = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "baseAngle":
|
case "baseAngle":
|
||||||
inputsA.angle = parseFloat(event.target.value) || 0;
|
{
|
||||||
|
const err = checkAngle(event.target.value);
|
||||||
|
setErrTooltip(1, err);
|
||||||
|
if (err === "") {
|
||||||
|
inputsA.angle = parseFloat(event.target.value);
|
||||||
|
} else {
|
||||||
|
inputsA.angle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "baseSideLength":
|
case "baseSideLength":
|
||||||
inputsB.l = parseFloat(event.target.value) || 0;
|
{
|
||||||
|
const err = checkLength(event.target.value);
|
||||||
|
setErrTooltip(2, err);
|
||||||
|
if (err === "") {
|
||||||
|
inputsB.l = parseFloat(event.target.value);
|
||||||
|
} else {
|
||||||
|
inputsB.l = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "baseAdjacentAngle":
|
case "baseAdjacentAngle":
|
||||||
inputsB.angle = parseFloat(event.target.value) || 0;
|
{
|
||||||
|
const err = checkAngle(event.target.value);
|
||||||
|
setErrTooltip(3, err);
|
||||||
|
if (err === "") {
|
||||||
|
inputsB.angle = parseFloat(event.target.value);
|
||||||
|
} else {
|
||||||
|
inputsB.angle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
console.log(event.target.id)
|
console.log(event.target.id)
|
||||||
@@ -249,8 +309,16 @@ elements.inputsForm.addEventListener('change', function (event) {
|
|||||||
}
|
}
|
||||||
updateCalculateButton();
|
updateCalculateButton();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleInputEvent(event) {
|
||||||
|
if (event.target.type === 'radio') {
|
||||||
|
handleSwitchInputs(event);
|
||||||
|
} else if (event.target.type === 'number') {
|
||||||
|
HandleInputsUpdate(event);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
|
|
||||||
elements.clearButton.addEventListener('click', (event) => {
|
elements.clearButton.addEventListener('click', (event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user