저는 사용자가 삽입 한 변수 k를 기반으로하는 입력 필드가있는 테이블을 동적으로 생성하는 함수와 사용자가 삽입 한 값을 다시 동적으로 생성하는 함수가 있습니다. 사용자를 테이블의 모든 필드에 추가하고 나중에 호출 할 수있는 2 차원 배열에 삽입합니다. 문제는 create table 함수가 코드에 삽입 된 onBlur와 작동하지 않는다는 것입니다. 코드는 다음과 같다 :innerHtml의 onBlur가 함수를 차단합니다.
<head>
<script>
var k;
function genArray() {
var A = [];
for (var i = 0; i < k; i++) {
A[i] = [];
for (var j = 0; j < k; j++) {
var id = "A" + (i + 1) + (j + 1);
A[i][j] = parseFloat(document.getElementById(id).value);
if (isNaN (A[i][j])) {
alert ('Valoarea 'A[i][j]' nu este un numar. Reintroduceti valoarea');
}
}
}
}
function readGrad() {
k = parseInt(document.getElementById("grad").value);
if (isNaN(k)) {
alert('Gradul introdus nu este intreg, reintroduceti gradul matricii');
}
if (k == 0) {
alert ('Determinantul trebuie sa fie mai mare ca 1');
}
if (k == 1) {
alert ('Determinantul trebuie sa fie mai mare ca 1');
}
return k;
}
function genTable(i,j) {
//var i,j = parseInt(document.getElementById("grad").value);
var myTable = '<TABLE BORDER="1" BORDERCOLOR="BLACK">\n <TBODY>\n';
for (i = 0; i < 1; i++) {
myTable += ' <TR>\n';
for (j = 0; j < k+1; j++) {
myTable += ' <TD>'+j+'</TD>\n';
}
myTable += ' </TR>\n';
}
for (i = 1; i < k+1; i++) {
myTable += ' <TR>\n';
for (j = 0; j < 1; j++) {
myTable += ' <TD>'+i+'</TD>\n';
}
for (j = 1; j < k+1; j++) {
myTable += ' <TD><input class="element" id="A' + i + j + '" onblur="genArray()"></TD>\n';
}
myTable += ' </TR>\n';
}
myTable += ' </TBODY>\n</TABLE>\n';
document.getElementById('container').innerHTML = myTable;
}
</script>
</head>
<body style="background-color: #777; color: ddd;">
<div style="margin: 20px;">
<h1>Program de calculare determinant matrice de orice grad.</h1>
</div>
<div>
Introduceti gradul matricei
<input id="grad" type="text" value="" style="width: 50px;" onChange="readGrad()">
<input style="margin-top: 20px;" type="button" name="Calculate determinant" value="Generati tabel" onClick="genTable()">
</div>
<form name="Det Matrice">
<div style="margin-top: 100px; float: left; width: 100%;">
Introduceti valorile:
<table style="text-align: center;">
<div id="container"></div>
</table>
<br>
</div>
</body>
'k'가 보이지 않아서 MIB2처럼 보입니다. – Paul
jslint는 코드의 유효성을 검사합니다. k는 사용자가 정의하고 다른 함수에서 읽습니다. onBlur = "genArray()"를 삭제하면 표가 생성됩니다. – viktor
경고 중 하나에서 구문 오류가 발생했습니다. 'Valoarea'[i] [j] '...'는 'Valoarea'+ – jbabey