сейчас попробую ваш вариант, надеюсь получится.. но скорее всего без пояснений я не разберусь))
|
Посмотрел...
ДА ладно!!!! не может быть так просто... РАБОТАЕТ!!!! ВЫ просто меня спасили! СПС Огромное! |
рони,
Еще раз спасибо... А могли бы вы пояснить то как работает ваша функция? и почему именно это в ней используется... для меня это просто шаманский-непонятный текст..
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, время: 16:13. |