Skip to content

Commit e107d72

Browse files
committed
ex. 3 input fix
1 parent b64bb33 commit e107d72

File tree

1 file changed

+69
-27
lines changed

1 file changed

+69
-27
lines changed

js/third.js

Lines changed: 69 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,86 @@
66
document.getElementById("res").disabled = true;
77
document.getElementById("num").disabled = true;
88
document.addEventListener("keyup", enterUp);
9-
document.getElementById("zero").addEventListener("input", binprov);
10-
document.getElementById("one").addEventListener("input", binprov);
11-
document.getElementById("num").addEventListener("input", provarg);
9+
document.getElementById("zero").addEventListener("input", inputCheck);
10+
document.getElementById("one").addEventListener("input", inputCheck);
11+
document.getElementById("num").addEventListener("input", inputCheck);
1212
}
1313
function enterUp(event) {
1414
if(document.getElementById("res").disabled == true) return 0;
1515
if (event.code == "Enter") click();
1616
}
1717

18-
function binprov(){
19-
if (this.value=='') document.getElementById("num").disabled = true;
20-
else document.getElementById("num").disabled = false;
21-
const message = document.getElementById('message');
22-
this.value=this.value.replace(/[^0-1]/g,"");
23-
let length = this.value.length;
24-
if(document.getElementById("zero").value.length!=document.getElementById("one").value.length)
25-
{
26-
message.textContent = 'Длина остаточных должна быть одинаковая';
18+
function inputCheck(){
19+
if(binprov("zero") == 0 | binprov("one") == 0 | provarg() == 0 | isEqualLength() == 0){
20+
document.getElementById("res").disabled = true;
21+
// console.log(binprov(), prov(), provarg())
22+
}
23+
else document.getElementById("res").disabled = false;
24+
}
25+
26+
function isEqualLength(){
27+
if(document.getElementById("zero").value.length!=document.getElementById("one").value.length){
28+
message.textContent = 'Длина остаточных должна быть одинаковой';
2729
document.getElementById('num').disabled = true;
30+
return 0;
2831
}
29-
else
30-
{
31-
message.textContent = '';
32-
document.getElementById('num').disabled = false;
33-
if (length > 0 && (length & (length - 1)) === 0) {
34-
message.textContent = '';
35-
document.getElementById('num').disabled = false;
36-
} else {
37-
message.textContent = 'Длина не является степенью двойки';
38-
document.getElementById('num').disabled = true;
39-
}
32+
return 1;
33+
}
34+
35+
function binprov(id){
36+
const message = document.getElementById('message');
37+
var vector = document.getElementById(id);
38+
console.log(id);
39+
vector.value=vector.value.replace(/[^0-1]/g,"");
40+
let length = vector.value.length;
41+
if(length == 1 || length == 0){
42+
message.textContent = 'Слишком короткий вектор!';
43+
document.getElementById("num").disabled = true;
44+
return 0;
4045
}
46+
47+
if ((length & (length - 1)) === 0) {
48+
message.textContent = '';
49+
document.getElementById("num").disabled = false;
50+
return 1;
51+
}
52+
message.textContent = 'Длина не является степенью двойки';
53+
document.getElementById("num").disabled = true;
54+
return 0;
55+
56+
// if (this.value=='') document.getElementById("num").disabled = true;
57+
// else document.getElementById("num").disabled = false;
58+
// const message = document.getElementById('message');
59+
// this.value=this.value.replace(/[^0-1]/g,"");
60+
// let length = this.value.length;
61+
// if(document.getElementById("zero").value.length!=document.getElementById("one").value.length)
62+
// {
63+
// message.textContent = 'Длина остаточных должна быть одинаковая';
64+
// document.getElementById('num').disabled = true;
65+
// }
66+
// else
67+
// {
68+
// message.textContent = '';
69+
// document.getElementById('num').disabled = false;
70+
// if (length > 0 && (length & (length - 1)) === 0) {
71+
// message.textContent = '';
72+
// document.getElementById('num').disabled = false;
73+
// } else {
74+
// message.textContent = 'Длина не является степенью двойки';
75+
// document.getElementById('num').disabled = true;
76+
// }
77+
// }
4178
}
4279
function provarg(){
43-
if (this.value=='') document.getElementById("res").disabled = true;
44-
else document.getElementById("res").disabled = false;
45-
this.value = this.value.replace(/[^\d]/g, "");
46-
if (this.value>Math.log2(document.getElementById("zero").value.length*2))this.value=Math.log2(document.getElementById("zero").value.length*2);
80+
var arg = document.getElementById("num");
81+
arg.value = arg.value.replace(/[^\d]/g, "");
82+
if (arg.value == '0' || binprov("one") == 0 || binprov("zero") == 0){
83+
arg.value='';
84+
return 0;
85+
}
86+
if(arg.value.length == 0) return 0;
87+
if (arg.value>Math.log2(document.getElementById("zero").value.length*2))arg.value=Math.log2(document.getElementById("zero").value.length*2);
88+
return 1;
4789
}
4890

4991

0 commit comments

Comments
 (0)