Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.10.2012, 09:18
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Svetlana_
Использовать 'input' удобно ли? В форме могут оказаться другие поля, не чекбокс.
см. по ситуации
document.querySelectorAll('input[type=checkbox]');

Сообщение от Svetlana_
"так и тут не экстрасенсы" - "вы не знаете? так я вам объясню"
Русский язык не имеет ничего общего с производным от языка - проггерским русским. Кроме букв. Нонсенс. Но так есть. Не всегда найдёшься в какой такой форме задать вопрос, чтобы он был понятен не только русскому, который суть ухватит "влёт", но и русскому проггеру. Что поделать. Изменение сознания налицо
Что такое
Сообщение от Svetlana_
значения выбранных боксов.
?
Ответить с цитированием
  #12 (permalink)  
Старый 06.10.2012, 15:40
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

bes, ES5

<form  method=get action="#" name="chekcms">
    <input type=checkbox name="wordpress">wordpress<br>
    <input type=checkbox name="ucoz">ucoz<br>
    <input type=checkbox name="dle">dle<br>
</form>

<button id="myBut">click</button>

<script>
    myBut.onclick = function () {

        alert(
            Array.prototype.slice.call( document.getElementsByTagName( 'input' ) )
                .map( function( input ) {
                    return input.checked;
                })

        );
    }
</script>
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #13 (permalink)  
Старый 06.10.2012, 18:13
Аспирант
Отправить личное сообщение для Svetlana_ Посмотреть профиль Найти все сообщения от Svetlana_
 
Регистрация: 05.10.2012
Сообщений: 31

Вот, что в результате получилось. Не самая плохая форма выбора/добавления тегов.

Используется, например, для добавления и выбора существующих тегов для новой темы блога, журнала.

<form method="post"> 
 
    <input type="text" id="tags" style=" width:300px" /> <a href="javascript:invWin()"> Selected Tags</a>
    
    <div id="theWin" style=" background:#f4f4f4; border:1px solid #ccc; margin-left: 300px; padding: 4px; visibility:hidden; position:absolute;">
        <input type="checkbox" name="wordpress" />wordpress<br>
        <input type="checkbox" name="ucoz" />ucoz<br>
        <input type="checkbox" name="dle" />dle<br>
    </div>
    
</form>
<button id="myBut">click</button>

<script>
function invWin(){
	if (document.getElementById("theWin").style.visibility =="visible") {
		document.getElementById("theWin").style.visibility="hidden"; 
	} else {
		document.getElementById("theWin").style.visibility="visible";
	}
}

myBut.onclick = function () {
	var inp = document.querySelectorAll('input[type=checkbox]');
	var length = inp.length;
	var mas = [];

	for (var i = 0; i < length; i++) {
		if (inp[i].checked) {
			mas.push(inp[i].nextSibling.nodeValue);
		}
	}
	document.getElementById("tags").value = mas.join(',');
}
</script>

Последний раз редактировалось Svetlana_, 06.10.2012 в 18:29.
Ответить с цитированием
  #14 (permalink)  
Старый 06.10.2012, 18:17
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

а кнопочку запустить [html run]
Ответить с цитированием
  #15 (permalink)  
Старый 06.10.2012, 18:23
Аспирант
Отправить личное сообщение для Svetlana_ Посмотреть профиль Найти все сообщения от Svetlana_
 
Регистрация: 05.10.2012
Сообщений: 31

Что такое: "значения выбранных боксов"?

Вот, вот... и не знаешь, о чём спросили

1. "Значение"... Это, например - "Wordpress", оно же - false или true, оно же - чёрт его знает.

2. "Выбранных"... Это - выбранный список полей(извиняюсь за слово "список"), это - отмеченные чекбоксы, это - неизвестно кто, что выбрал.

3. "Боксы"... ну, это я уж не знаю зачем уж так-то уж.

4. Модератор попрёт за флуд.

Последний раз редактировалось Svetlana_, 06.10.2012 в 18:40.
Ответить с цитированием
  #16 (permalink)  
Старый 06.10.2012, 18:52
Аспирант
Отправить личное сообщение для Svetlana_ Посмотреть профиль Найти все сообщения от Svetlana_
 
Регистрация: 05.10.2012
Сообщений: 31

И ещё... Баловство, конечно, но для пользователя будет удобно, если уже введённое слово(новый тег) или слова с запятыми не удалялись из поля "tags" при добавлении существующих тегов.

В принципе, можно обойтись и без этого - в хелпе прописала маленькую инструкцию, мол, сначала выбери, а затем уж добавляй новое. Однако, вроде как-то несовременно.

Если найдёте время, уважаемые профессора, создайте решение, плз (не сочтите за наголовуусаживание - код пригодится оччень многим новичкам).
Ответить с цитированием
  #17 (permalink)  
Старый 06.10.2012, 19:37
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Svetlana_
И ещё... Баловство, конечно, но для пользователя будет удобно, если уже введённое слово(новый тег) или слова с запятыми не удалялись из поля "tags" при добавлении существующих тегов.
это как?
Ответить с цитированием
  #18 (permalink)  
Старый 06.10.2012, 19:47
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Svetlana_,
if (document.getElementById("tags").length > 0) {
document.getElementById("tags").value += document.getElementById("tags").value.charAt(document.getElementById("tags").length-1) != "," ? ","+mas.join(',') : mas.join(",");
} else {
document.getElementById("tags").value = mas.join(",");
}
Ответить с цитированием
  #19 (permalink)  
Старый 06.10.2012, 20:00
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Зачем вообще кнопка
<form method="post"> 
	<input type="text" id="tags" style=" width:300px"/> 
	<a href="#"> Selected Tags</a>
	<div id="theWin" style=" background:#f4f4f4; border:1px solid #ccc; margin-left: 300px; padding: 4px; visibility:hidden; position:absolute;">
		<input type="checkbox" name="wordpress" />wordpress<br>
		<input type="checkbox" name="ucoz" />ucoz<br>
		<input type="checkbox" name="dle" />dle<br>
	</div>
</form>

<script>
window.onload = function () {
	var form = document.forms[0];
	var inp = form.children[0];
	var  st = form.children[2].style;
	
	form.onclick = function (e) {
		e = e || event;
		var target = e.target || e.srcElement;
		if (target.tagName == 'A') {
			(st.visibility != 'visible') ? st.visibility = 'visible': st.visibility = 'hidden';
		} else 
		if (target.checked) {
			inp.value += target.nextSibling.nodeValue + ', ';
		} else {
			inp.value = inp.value.replace(target.nextSibling.nodeValue + ', ', '');
		}
	}
}
</script>

Последний раз редактировалось bes, 06.10.2012 в 20:12.
Ответить с цитированием
  #20 (permalink)  
Старый 06.10.2012, 20:18
Аспирант
Отправить личное сообщение для Svetlana_ Посмотреть профиль Найти все сообщения от Svetlana_
 
Регистрация: 05.10.2012
Сообщений: 31

lord2kim,
if (document.getElementById("tags").length > 0)

, - это условие не работает.
Сработало так:
if (document.getElementById("tags").length != '')

Отличная штука

Для полного счастья не хватает условий:
- удалить при нажатии на кнопку введённые в поле "tags" слова, короче n-символов (допустим - 3),
- удалить повторные тэги.

Повторные теги образуются, когда в поле вручную введён тег, который далее ошибочно ещё и выбирается из имеющихся.

Последний раз редактировалось Svetlana_, 06.10.2012 в 20:21.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу вывести массив в js-те из php json_encode A1x1On AJAX и COMET 0 27.12.2011 04:05
jqgrid tree and checkbox gaz2003 jQuery 0 17.12.2011 15:59
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30