Я пытаюсь разработать довольно простой и простой веб -сайт. У меня есть таблица, и пользователь может заполнить информацию в полях input = ". Я добавляю строки с кнопкой Plus, которая запускает функцию insertrow () и удалять строки с помощью функции Removerow () динамически. Когда я нажимаю кнопку «Продолжить», запускается функция () , которая восстанавливает приведенную выше таблицу в новой ниже. После восстановления я добавляю текст из полей, а затем запускаю функцию RemoveButTons () , чтобы удалить все кнопки с правой стороны таблиц. Кажется, я не могу найти то, что не так, хотя я трачу довольно много времени, пытаясь решить проблему, поэтому я прошу помощи у людей с гораздо большим опытом, чем у меня. Я знаю, вероятно, проблема заключается в функции продолжения () < /code>, но я попробовал несколько вещей, из которых никто не решил мою проблему.
.btndiv {
position: relative;
top: -20px;
}
.btn {
position: absolute;
right: -30px;
width: 20px;
height: 20px;
background-image: url(minus.jpg);
cursor: pointer;
}
.btnPlus {
position: absolute;
right: -60px;
width: 20px;
height: 20px;
background-image: url(plus.jpg);
cursor: pointer;
}
.hideP {
display: none;
}
table,
td,
th {
border: 1px solid #ddd;
}
table {
border-collapse: collapse;
}
function insertRow() {
//>>> Inserting a row and a div that holds the buttons on every last cell in each row
var table = document.getElementById("myTable");
var count = document.getElementById("myTable").rows.length;
var row = table.insertRow(count);
var cell = 0;
while (cell >> Deleting a row
var count = document.getElementById("myTable").rows.length;
if (count == 3) {
alert("The table must have at least one row!");
} else {
theId++;
theId++;
document.getElementById("myTable").deleteRow(theId);
hidePlusDelete();
resetIds();
}
}
function resetIds() {
//>>> Resetting the ids of my buttons dynamically (when inserting or removing row)
var count = document.getElementById("myTable").rows.length;
var x = document.getElementsByClassName("btn");
var y = 0;
var temp;
while (y >> Hiding all plus buttons in every row except the last one on the right side of the minus button
var count = document.getElementById("myTable").rows.length;
if (count > 3) {
var x = document.getElementsByClassName("btnPlus");
var xlength = x.length;
var xlengthnew = xlength - 1;
var y = 0;
var temp;
while (y < xlengthnew) {
temp = x[y];
temp.setAttribute("class", "hideP");
y++;
}
}
}
function hidePlusDelete() {
var count = document.getElementById("myTable").rows.length;
if (count >= 3) {
var x = document.getElementsByClassName("hideP");
var xlength = x.length;
var xlengthnew = xlength - 1;
var y = 0;
var temp;
if (y === xlengthnew && count < 3) {
temp = x[y];
temp.setAttribute("class", "btnPlus");
}
}
}
function clearTable() {
//>>> Clear all input="text" fields
var inp = document.getElementsByTagName('input');
for (var i in inp) {
if (inp[i].type == "text") {
inp[i].value = "";
}
}
}
function proceed() {
//>>> Get text from text boxes and store them in the text variable
//>>> Counter variable to get the number of input="text" fields
var text = "";
var count = 0;
var inp = document.getElementsByTagName("input");
for (var i in inp) {
if (inp[i].type == "text") {
text += inp[i].value;
text += ";";
count++;
}
}
//>>> Store the HTML code from myTable in data variable
//>>> Put the HTML code in newTable
var data = document.getElementById("myTable").innerHTML;
document.getElementById("newTable").innerHTML = data;
//>>> Splitting my text in parts
//>>> Put the text in the input="text" of newTable
var temp = 0;
var counter = 0;
var tempor;
var temporary;
var values = text.split(";");
var p2inp = document.getElementsByTagName("input");
for (var c in p2inp) {
if (p2inp[c].type == "text") {
temp = counter + count + 2;
tempor = p2inp[temp];
temporary = values[counter]
tempor.value = temporary;
//inp[temp].setAttribute("readonly", "readonly");
//inp[temp].setAttribute("disabled", "disabled");
counter++;
}
}
//>>> Hiding buttons from the tables
//>>> The buttons are divs modified to look like buttons with css
removeButtons();
}
function removeButtons() {
//>>> Adding the css class hideP (display="none")
alert("in remove buttons");
var divcount = document.getElementsByClassName("btndiv").length;
alert(divcount);
var divcounter = 0;
var divtemp = 0;
var divinp = document.getElementsByClassName("btndiv");
while (divcounter
Подробнее здесь: [url]https://stackoverflow.com/questions/51223431/javascript-function-does-not-run-after-a-function-that-i-created[/url]
Я пытаюсь разработать довольно простой и простой веб -сайт. У меня есть таблица, и пользователь может заполнить информацию в полях input = ". Я добавляю строки с кнопкой Plus, которая запускает функцию insertrow () и удалять строки с помощью функции Removerow () динамически. Когда я нажимаю кнопку «Продолжить», запускается функция () , которая восстанавливает приведенную выше таблицу в новой ниже. После восстановления я добавляю текст из полей, а затем запускаю функцию RemoveButTons () , чтобы удалить все кнопки с правой стороны таблиц. Кажется, я не могу найти то, что не так, хотя я трачу довольно много времени, пытаясь решить проблему, поэтому я прошу помощи у людей с гораздо большим опытом, чем у меня. Я знаю, вероятно, проблема заключается в функции продолжения () < /code>, но я попробовал несколько вещей, из которых никто не решил мою проблему.[code]
function insertRow() { //>>> Inserting a row and a div that holds the buttons on every last cell in each row var table = document.getElementById("myTable"); var count = document.getElementById("myTable").rows.length; var row = table.insertRow(count); var cell = 0; while (cell >> Deleting a row var count = document.getElementById("myTable").rows.length; if (count == 3) { alert("The table must have at least one row!"); } else { theId++; theId++; document.getElementById("myTable").deleteRow(theId); hidePlusDelete(); resetIds(); } }
function resetIds() { //>>> Resetting the ids of my buttons dynamically (when inserting or removing row) var count = document.getElementById("myTable").rows.length; var x = document.getElementsByClassName("btn"); var y = 0; var temp; while (y >> Hiding all plus buttons in every row except the last one on the right side of the minus button var count = document.getElementById("myTable").rows.length; if (count > 3) { var x = document.getElementsByClassName("btnPlus"); var xlength = x.length; var xlengthnew = xlength - 1; var y = 0; var temp; while (y < xlengthnew) { temp = x[y]; temp.setAttribute("class", "hideP"); y++; } } }
function hidePlusDelete() { var count = document.getElementById("myTable").rows.length; if (count >= 3) { var x = document.getElementsByClassName("hideP"); var xlength = x.length; var xlengthnew = xlength - 1; var y = 0; var temp; if (y === xlengthnew && count < 3) { temp = x[y]; temp.setAttribute("class", "btnPlus"); } } }
function clearTable() { //>>> Clear all input="text" fields var inp = document.getElementsByTagName('input'); for (var i in inp) { if (inp[i].type == "text") { inp[i].value = ""; } } }
function proceed() { //>>> Get text from text boxes and store them in the text variable //>>> Counter variable to get the number of input="text" fields var text = ""; var count = 0; var inp = document.getElementsByTagName("input"); for (var i in inp) { if (inp[i].type == "text") { text += inp[i].value; text += ";"; count++; } }
//>>> Store the HTML code from myTable in data variable //>>> Put the HTML code in newTable var data = document.getElementById("myTable").innerHTML; document.getElementById("newTable").innerHTML = data;
//>>> Splitting my text in parts //>>> Put the text in the input="text" of newTable var temp = 0; var counter = 0; var tempor; var temporary; var values = text.split(";"); var p2inp = document.getElementsByTagName("input"); for (var c in p2inp) { if (p2inp[c].type == "text") { temp = counter + count + 2; tempor = p2inp[temp]; temporary = values[counter] tempor.value = temporary; //inp[temp].setAttribute("readonly", "readonly"); //inp[temp].setAttribute("disabled", "disabled"); counter++; } }
//>>> Hiding buttons from the tables //>>> The buttons are divs modified to look like buttons with css removeButtons(); }
function removeButtons() { //>>> Adding the css class hideP (display="none") alert("in remove buttons"); var divcount = document.getElementsByClassName("btndiv").length; alert(divcount); var divcounter = 0; var divtemp = 0; var divinp = document.getElementsByClassName("btndiv"); while (divcounter