Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.10.2018, 18:04
Интересующийся
Отправить личное сообщение для ushembo Посмотреть профиль Найти все сообщения от ushembo
 
Регистрация: 20.02.2017
Сообщений: 13

не работает getelementsbyname
Всем привет
Подскажите почему не работает скрипт, при поиске по name,
но работает по id.
<script>
document.addEventListener('DOMContentLoaded', function(){

function charCount(text){
  return text.length;
}
function g(id){
return document.getElementById(id);
}

g('input').onkeyup=function(){
g('label').innerHTML=charCount(this.value);
}
}, false);
</script>

<textarea id='input'></textarea>
<label id='label'>0</label>


Нерабочий вариант, что с ним?
<script>
document.addEventListener('DOMContentLoaded', function(){

function charCount(text){
  return text.length;
}
function g(name){
return document.getElementsByName(name);
}

g('name').onkeyup=function(){
g('label').innerHTML=charCount(this.value);
}
}, false);
</script>

<textarea name="name" id='input'></textarea>
<label id='label'>0</label>


2) Второй вопрос, как запускать скрипт только при
определенном урле или же если в урле содержится заданный текст

Спасибо!

Последний раз редактировалось ushembo, 03.10.2018 в 18:24.
Ответить с цитированием
  #2 (permalink)  
Старый 03.10.2018, 18:13
Интересующийся
Отправить личное сообщение для ushembo Посмотреть профиль Найти все сообщения от ushembo
 
Регистрация: 20.02.2017
Сообщений: 13

пардон, создал тему не в том разделе.
Перенесите пожалуйста https://javascript.ru/forum/events/
Ответить с цитированием
  #3 (permalink)  
Старый 03.10.2018, 18:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

в строке 11 нужно указать индекс элемента
g('name')[0].onkeyup=function(){

строка 12. нет у вас такого name="label"

2 вопрос, обернуть скрипт в
if(/ваш_текст/.test(document.lacation.href)){
//ваш скрипт
}
Ответить с цитированием
  #4 (permalink)  
Старый 03.10.2018, 18:32
Интересующийся
Отправить личное сообщение для ushembo Посмотреть профиль Найти все сообщения от ushembo
 
Регистрация: 20.02.2017
Сообщений: 13

Сообщение от j0hnik
в строке 11 нужно указать индекс элемента
указал 0
https://codepen.io/ushembo/pen/MPKREW но все еще не работает.
А как узнать индекс нужного элемента в огромном файле?
Ответить с цитированием
  #5 (permalink)  
Старый 03.10.2018, 22:14
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

ushembo,
строка 12. тоже нужен индекс
Сообщение от ushembo
А как узнать индекс нужного элемента в огромном файле?
Дайте ему id и не парьтесь или ищите по тем параметрам которые у него уникальны или считайте какой он по счету в вашем большом файле, начиная с нуля

Последний раз редактировалось j0hnik, 03.10.2018 в 22:22.
Ответить с цитированием
  #6 (permalink)  
Старый 04.10.2018, 19:52
Интересующийся
Отправить личное сообщение для ushembo Посмотреть профиль Найти все сообщения от ushembo
 
Регистрация: 20.02.2017
Сообщений: 13

document.addEventListener('DOMContentLoaded', function(){
        document.querySelector('[name="NAME"]').setAttribute('id','countTitle');
        document.querySelector('[name="DESC"]').setAttribute('id','countDesc');

        var countT ='<label style="color:red;border: 1px solid #a33f19; padding: 3px; font-weight: 600; margin-left: 5px; font-size: 17px;" id="labelTitle">0</label>';
        var countD ='<label style="color:red;border: 1px solid #a33f19; padding: 3px; font-weight: 600; margin-left: 5px; font-size: 17px; position: absolute;" id="labelDesc">0</label>';

        document.getElementById('countTitle').insertAdjacentHTML("afterEnd", countT);
        document.getElementById('countDesc').insertAdjacentHTML("afterEnd", countD);

        function charCount(text){
            return text.length;
        }
        function g(id){
            return document.getElementById(id);
        }

        g('countTitle').onkeyup=function(){
        g('labelTitle').innerHTML=charCount(this.value);
        }
        g('countDesc').onkeyup=function(){
            g('labelDesc').innerHTML=charCount(this.value);
        }

    }, false);


Сделал так, все работает отлично.
Правильно сделал? Или дикий костыль?
Ответить с цитированием
  #7 (permalink)  
Старый 04.10.2018, 19:54
Интересующийся
Отправить личное сообщение для ushembo Посмотреть профиль Найти все сообщения от ushembo
 
Регистрация: 20.02.2017
Сообщений: 13

Сейчас планирую перекрашивать label если символов больше 50 для countTitle и 150 для countDesc.
Не могли бы дать пример как это можно реализовать. Или на нужную документацию направить, хотелось бы разобраться
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
ajax запросы, работает на одних компах и не работает на других vtornik23 AJAX и COMET 2 22.03.2010 18:22
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11