Skip to content

Commit b380768

Browse files
2 parents 58b82ec + b64bb33 commit b380768

File tree

1 file changed

+46
-25
lines changed

1 file changed

+46
-25
lines changed

js/second.js

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,67 @@
33

44
function init() {
55
document.getElementById("res").addEventListener("click", click);
6-
document.getElementById("residual").disabled = true;
7-
document.getElementById("num").disabled = true;
86
document.getElementById("res").disabled = true;
7+
document.getElementById("num").disabled = true;
98
document.addEventListener("keyup", enterUp);
10-
document.getElementById("vector").addEventListener("input", binprov);
11-
document.getElementById("residual").addEventListener("input", prov);
12-
document.getElementById("num").addEventListener("input", provarg);
9+
document.getElementById("vector").addEventListener("input", inputCheck);
10+
document.getElementById("residual").addEventListener("input", inputCheck);
11+
document.getElementById("num").addEventListener("input", inputCheck);
1312
}
1413
function enterUp(event) {
1514
if(document.getElementById("res").disabled == true) return 0;
1615
if (event.code == "Enter") click();
1716
}
17+
18+
function inputCheck(){
19+
if(binprov() == 0 | prov() == 0 | provarg() == 0){
20+
document.getElementById("res").disabled = true;
21+
// console.log(binprov(), prov(), provarg())
22+
}
23+
else document.getElementById("res").disabled = false;
24+
}
25+
1826
function binprov(){
27+
// console.log('checking vector');
1928
const message = document.getElementById('message');
20-
this.value=this.value.replace(/[^0-1]/g,"");
21-
let length = document.getElementById("vector").value.length;
22-
if (length > 0 && (length & (length - 1)) === 0) {
23-
message.textContent = '';
24-
document.getElementById('residual').disabled = false;
25-
} else {
26-
message.textContent = 'Длина не является степенью двойки';
27-
document.getElementById("residual").disabled = true;
28-
}
29-
if (this.value=='') document.getElementById("residual").disabled = true;
30-
else document.getElementById("residual").disabled = false;
29+
var vector = document.getElementById("vector");
30+
vector.value=vector.value.replace(/[^0-1]/g,"");
31+
let length = vector.value.length;
32+
if(length == 1 || length == 0){
33+
message.textContent = 'Слишком короткий вектор!';
34+
document.getElementById("num").disabled = true;
35+
return 0;
36+
}
37+
if ((length & (length - 1)) === 0) {
38+
message.textContent = '';
39+
document.getElementById("num").disabled = false;
40+
return 1;
41+
}
42+
message.textContent = 'Длина не является степенью двойки';
43+
document.getElementById("num").disabled = true;
44+
return 0;
3145
}
3246

3347
function prov(){
34-
if (this.value=='') document.getElementById("num").disabled = true;
35-
else document.getElementById("num").disabled = false;
36-
this.value=this.value.replace(/[^0-1]/g,"")
37-
if (this.value.length>1)this.value=this.value.substr(0,1);
48+
// console.log('checking 0/1');
49+
var residual = document.getElementById("residual");
50+
residual.value=residual.value.replace(/[^0-1]/g,"")
51+
if (residual.value.length>1) residual.value=residual.value.substr(0,1);
52+
if(residual.value.length == 0) return 0;
53+
return 1;
3854
}
3955

4056
function provarg(){
41-
if (this.value == '0') this.value='';
42-
if (this.value=='') document.getElementById("res").disabled = true;
43-
else document.getElementById("res").disabled = false;
44-
this.value = this.value.replace(/[^\d]/g, "");
45-
if (this.value>Math.log2(document.getElementById("vector").value.length))this.value=Math.log2(document.getElementById("vector").value.length);
57+
// console.log('checking arg');
58+
var arg = document.getElementById("num");
59+
arg.value = arg.value.replace(/[^\d]/g, "");
60+
if (arg.value == '0' || binprov() == 0){
61+
arg.value='';
62+
return 0;
63+
}
64+
if (arg.value>Math.log2(document.getElementById("vector").value.length))arg.value=Math.log2(document.getElementById("vector").value.length);
65+
if(arg.value.length == 0) return 0;
66+
return 1;
4667
}
4768

4869
function click() {

0 commit comments

Comments
 (0)