Ошибка при замене части url при вводе через input
Доброго времени суток.
При вводе в ручную информации в поле ввода происходит какая-то ерудна, тяжело объяснить, это надо видеть. Но, при вводе информации путем вставки скопированной информации (Ctrl+V) - всё нормально! Подскажите, что не так. И, если можно, исправьте, пожалуйста. <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> body{ font-family: "Helvetica Neue",Arial,sans-serif; font-size:17px; } .vydelit { color: rgb(251, 72, 2); } </style> </head> <body> <center> <table id="demotable"> <thead><tr> <td>IP: <input type="text" id="raz" value="31.47.177.168"/> Порт: <input type="text" id="raz2" value="4022"/> </td> </tr></thead> <tbody> <td><span><img src="</span>http://monitor.zone-game.info/check.php?do=status&ip=<b class="vydelit">31.47.177.168</b>&port=<b class="vydelit">4022</b>&id=33<span>"></span><br> <img src="http://monitor.zone-game.info/check.php?do=status&ip=31.47.177.168&port=4022&id=33" /> </td> </tbody> </table> <script> (function(){ var s = '31.47.177.168'; document.getElementById('raz').oninput = function() { var d = document.querySelector('#demotable tbody'); d.innerHTML = d.innerHTML.replace(new RegExp(s,"g"), this.value); s = this.value; } })() </script> <script> (function(){ var s = '4022'; document.getElementById('raz2').oninput = function() { var d = document.querySelector('#demotable tbody'); d.innerHTML = d.innerHTML.replace(new RegExp(s,"g"), this.value); s = this.value; } })() </script> для примера скопируйте ip: 176.100.91.83 и Порт: 8881 и вставьте через Ctrl+V </center> </body> </html> |
Feex,
попробуйте указать кодировку <meta charset="utf-8"> |
Цитата:
|
Feex,
возможно не учитываите множественную перезапись при вводе посимвольно |
Если честно, я там ничего не учитываю) ибо мои познания так далеко не продвинулись.. Да и случайно вообще обнаружил этот баг, решил руками повводить и тут такое..
|
Это как-то можно исправить?
|
Feex,
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> body{ font-family: "Helvetica Neue",Arial,sans-serif; font-size:17px; } .vydelit { color: rgb(251, 72, 2); } </style> </head> <body> <center> <table id="demotable"> <thead><tr> <td>IP: <input type="text" id="raz" value="31.47.177.168"/> Порт: <input type="text" id="raz2" value="4022"/> </td> </tr></thead> <tbody> <td><span><img src="</span>http://monitor.zone-game.info/check.php?do=status&ip=<b class="vydelit">31.47.177.168</b>&port=<b class="vydelit">4022</b>&id=33<span>"></span><br> <img src="http://monitor.zone-game.info/check.php?do=status&ip=31.47.177.168&port=4022&id=33" /> </td> </tbody> </table> <script> var inp = document.querySelectorAll('input'), v = document.querySelectorAll('.vydelit'); [].forEach.call(document.querySelectorAll('input'), function(item,i) { item.addEventListener('input', function() { v[i].textContent = item.value; var p = v[i].parentNode; p.querySelector('img').src = "http://monitor.zone-game.info/check.php?do=status&ip="+v[0].textContent+"&port="+v[1].textContent+"&id=33" }); }); </script> для примера скопируйте ip: 176.100.91.83 и Порт: 8881 и вставьте через Ctrl+V </center> </body> </html> |
Цитата:
Только есть одно но, там при вводе и в адресе картинки заменились IP и порт. А теперь в адресе картинки ничего не меняется. |
Feex,
То что делает код вам понятно? |
Цитата:
|
Feex,
попробуйте самостоятельно исправить мою ошибку и пожалуйста не копируйте сообщения целиком. если нет желания через 10 минут исправлю. |
Цитата:
Насколько я понимаю Вы ошибок не дупустили, просто не задействовали саму картинку. Туда надо как-то пристроить "+v[1].textContent+" и "+v[2].textContent+". У меня пока не получается.. |
Цитата:
|
вместо "+v[1].textContent+" и "+v[2].textContent+" - "+v[0].textContent+" и "+v[1].textContent+" ))
Т.е даже не трогая саму картинку (url) можно сделать оказывается. т.е не передавая никаких переменных туда? )) |
рони,
Спасибо еще раз! Почему то не могу плюс поставить, пишут, что я должен еще кому то добавить отзыв, прежде чем смогу добавить Вам.. |
ТС, у тебя же инпут в таблице, хитемэль которой заменяется при каждом нажатии кнопки. Ты еще бы дом разбирал до фундамента, чтобы попасть в квартиру, а потом собирал бы изнутри, чтобы на диване полежать.
|
Цитата:
|
Цитата:
Цитата:
В d сейчас таблица, а в таблице input, при нажатии на который Цитата:
хтмл всей таблицы заменяется, в том числе заменяется твой input Цитата:
И только потому, что там oninput, все и работает. Если бы ты как белый человек повесил .addEventListener, то не пришлось бы сюда переться, поскольку после первого же нажатия и замены хтмля листенер бы сдох и ничего бы не работало дальше. Что, собственно и происходит у тебя при вставке - работает только 1 раз, за одно нажатие, а если нажимать много раз, там шопесец что получается, поскольку инпут постоянно заменяется другим. Я же говорю, это метод заменить обои путем разборки дома и постройки нового с другими обоями. Еще раз заноешь что рони тебя осчастливил - еще раз урою. |
И вообще так не делается - чтобы при вводе заменять тексты. Это придется управлять курсором - как в плагине ввода номера телефона, что при вводе больших текстов геморрой. Замена делается при отправке, или при выводе. Получаешь value и заменяешь что на что. Уходит правильное. Если с ввода есть вывод - в элемент, то на выводе заменяешь. В текстовое поле лезть не надо, его содержание в хтмле ОТСУТСВУЕТ.
|
warren buffet,
ты бухаешь что ли? Или куришь хрень какую-то?.. Завязывай.. У тебя речь уже как у пятикантропа - почитай себя.. или ты думаешь это ааафигеть как круто? Ошибаешься, это ааафигеть как по быдлячему. Насчет Рони - ему еще раз спасибо! Ибо в отличии от тебя он НЕ быдлит, НЕ пишет много "букаф", а всё коротко и наглядно!!! Твоего варианта решения задачи я пока в теме так и не заметил... P.S. Судя по Вашей репутации и речи, сударь, у Вас смещение парадигмы восприятия. Если Вас инопланетяне в плен захватят, они решат, что на земле нет разумной жизни. |
Цитата:
|
Цитата:
|
Feex, "пятикантроп", расскажи, ты сам догадался заменять value поля ввода путем замены его хтмля, или какое-то чудовище подсказало?
|
Цитата:
Во-вторых, такое ощущение, что когда ты в поле тамагочика хоронил, тебя ударила молния. Ну, и в-третьих, если бы ты внимательно прочитал всю тему, то такие вопросы не задавал бы. |
Часовой пояс GMT +3, время: 23:02. |