сейчас попробую ваш вариант, надеюсь получится.. но скорее всего без пояснений я не разберусь))
|
Посмотрел...
ДА ладно!!!! не может быть так просто... РАБОТАЕТ!!!! ВЫ просто меня спасили! СПС Огромное! |
рони,
Еще раз спасибо... А могли бы вы пояснить то как работает ваша функция? и почему именно это в ней используется... для меня это просто шаманский-непонятный текст.. function del_row() { var checks = document.querySelectorAll('input:checked'); for (var i = 0, check; check = checks[i]; i++) { var tr = check.parentNode.parentNode; var parent = tr.parentNode parent.removeChild(tr); } } |
SOS!! help!!!
Я конечно глубоко извиняюсь но проблема такая.
Вот код который получился.. он прекрасно работает в "Chrome", но оказалось, что необходимо открывать эту страничку через IE(Internet Explorer) а там, на удивление, функция удаления строк не работает(( :( говорит "Ошибка на странице" и ссылается вроде как на эту строчку: var checks = document.querySelectorAll('input:checked'); Вот сам код страницы: <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <head> <title>SAP</title> <script language="javascript" type="text/javascript"> var char1 = '', mass = new Array(), lastn = '', fastn = '', middlen = '', s4 = 0, s41 = 0, f = false; var fio1 = ""; // Функция отлова нажатых клавиш с клавы function press(event) { if(event.keyCode == "13"){ mass[mass.length] = char1; //fio() char1 = ''; f = true; insRow(); }else{ char1 += String.fromCharCode(event.keyCode); } } // функция для доставания ФИО из вводимой строки function fio() { for (i = 0; i < char1.length; i ++ ) { if (char1.charAt(i) == '!') { s4 = s4 + 1; s41 = i } if (s4 == 14 && i != s41) // фамилия { lastn += char1.charAt(i) } if (s4 == 15 && i != s41) // имя { fastn += char1.charAt(i) } if (s4 == 16 && i != s41) // отчество { middlen += char1.charAt(i) } } fio1 = lastn + " " + fastn + " " + middlen; } // функция вставки строки в таблицу function insRow() { var x = document.getElementById('MyTable').insertRow(0); var k = x.insertCell(0); var y = x.insertCell(1); var z = x.insertCell(2); k.innerHTML = '<td><input type="checkbox" id=checkboxN"' + ((mass.length) - 1) + '"></td>'; y.innerHTML = "номер"; if(f){z.innerHTML = mass[mass.length-1]; f = false; }else{z.innerHTML = fio1;} } function demo() { char1 = '!!8!!!!!!1!0!!!!!PAULSEN!OLAF!!1965-10-12!0!!1!!!!!!0!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'; if (char1.charAt(0) == '!' && char1.charAt(1) == '!' && char1.charAt(2) == '8' && char1.charAt(3) == '!' && char1.charAt(4) == '!' && char1.charAt(5) == '!') { mass[mass.length] = char1; fio(); char1 = ''; insRow(); } } // функция для удаления function del_row() { var checks = document.querySelectorAll('input:checked'); for (var i = 0, check; check = checks[i]; i++) { var tr = check.parentNode.parentNode; var parent = tr.parentNode parent.removeChild(tr); } } // функция для отправки данных на сервер var finishstr = ""; function sendtosap(event) { for (i=0;i<(mass.length); i ++ ) { finishstr += mass[i]; if (i==mass.length-1) { finishstr += '@'; } else { finishstr += '$'; } } var r = confirm("You sure send to SAP?") if (r == true){ document.f1.h1.value = finishstr; document.location.reload(true); }else{ finishstr = ""; } } </script> </head> <body onkeypress = "press(event)"> <H1>"SAP" sick list </H1> <div id="header" style="background-color:#87CEFA;"> <INPUT TYPE="button" NAME="myButton" value=" добавить готовую строчку" onClick="demo()"> <form id="fms" method="get" action=""> <DIV style="position: absolute; top: 130px; left: 20px; background-color: #F0FFFF ; color: navy"> <table id="MyTable" border="1"> </table> <input name="" type="button" value="del_check_row" onclick="del_row()"> </DIV> </form> <form name = "f1" method="POST" action="sapevent:longtext"> <DIV style="position: absolute; top: 80px; left: 1000px; background-color: #7FFFD4 ; color: navy"> <INPUT TYPE="submit" value="Send text to SAP" name="cc" onclick = "sendtosap(event) "> <br /><input type="hidden" value="" name="h1"/> </DIV> </form> </body> </html> Что делать?? подскажите пожалуйста.. :help: :help: :help: :cray: |
Angelo4ek88,:cray: пост 8 обновлён -- функция находит инпуты и если чекед удаляет строку в которой этот инпут находится -- если checkbox гдето ещё есть кроме таблицы уточните сами где их искать. http://learn.javascript.ru/searching-elements-dom
function del_row() { var nodeList = document.getElementsByTagName('input'); var array = Array.prototype.slice.call(nodeList); for (var i = 0; i < array.length; i++) { if (array[i].checked) { var tr = array[i].parentNode.parentNode; var parent = tr.parentNode parent.removeChild(tr); } } } |
Цитата:
-т.е. я понял так, что данный код работает в IE только начиная с версии 8. так? а для версий более ранних можно ли что нить придумать? --checkbox кроме таблицы, больше нигде нет... А как тогда сделать кнопку "Выделить все", чтоб она выделяла сразу все checkbox?? -- и еще вопрос.. каким методом в таблицу можно передать данные из сервера??.. |
|
Часовой пояс GMT +3, время: 18:47. |