Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выбор одного из c возможностью коректировки (https://javascript.ru/forum/misc/35671-vybor-odnogo-iz-c-vozmozhnostyu-korektirovki.html)

ss18EXEL 18.02.2013 10:37

Выбор одного из c возможностью коректировки
 
Добрый день. Столкнулся с такой проблемой не могу сообразить как можно решить такую задачу. Есть у меня checkbox несколько вариантов с проверкой которые присвистывают значения выбран флажок или нет.
Но требуется ещё при выборе добавить возможность редактирования.

вот код чеков:
<script>
function valuesSum()
{
        var sum = 0;

        var checks = document.getElementsByName('uv_check[]');

        for(var i = 0; i < checks.length; i++)
        {
           if(checks[i].checked)
           sum += parseInt(checks[i].value, 10);
        }
		var str = new String(sum);
		while(str.length < 4)
			str = '0' + str;
        forma.uv_check_java.value=str;

}


</script>


				  $licacheck[1]="текст текст текст";
				  $licacheck[2]="текст1 текст1 текст1";
				  $licacheck[3]="текст2 текст2 текст2";
				  $licacheck[4]="текст3 текст3 текст3";


				    <input type='checkbox' name='uv_check[]' class='uv_check' value='1000' onclick=valuesSum()>'".$licacheck[1]."'<Br>
					<input type='checkbox' name='uv_check[]' class='uv_check' value='100' onclick=valuesSum()>'".$licacheck[2]."'<Br>
					<input type='checkbox' name='uv_check[]' class='uv_check' value='10' onclick=valuesSum()>'".$licacheck[3]."'<Br>
					<input type='checkbox' name='uv_check[]' class='uv_check' value='1' onclick=valuesSum()>'".$licacheck[4]."'<Br>
					<input type='hidden' id='uv_check_java' value=0 name='uv_check_java'>


но как сделать чтобы при выборе чека можно было этот вариант ещё и поправить так ещё и не додумался. Может кто предложит как решить задачу?

ksa 18.02.2013 10:50

Цитата:

Сообщение от ss18EXEL
как сделать чтобы при выборе чека можно было этот вариант ещё и поправить

Переведи... :blink:

ss18EXEL 18.02.2013 11:03

Допустим выбрал чек 1. Мне надо чтобы появился допустим <input type='text'> где подставится значение чек 1 "текст текст текст" который
можно отредактировать например " так так так" и отправить это значение отдельной переменной. Ну вот как я это вижу. Понятно или более детально объяснить? Просто в верхнем коде я проверял на отмеченные или нет и отправлял цифры а потом брал из базы резал их и подставлял значения . Тогда было в задании просто выбор одного из без возможности редактирования а теперь надо дать возможность редактирования выбраного чека.

ksa 18.02.2013 13:48

Цитата:

Сообщение от ss18EXEL
Понятно или более детально объяснить?

Самый лучший вариант - это тестовый пример с нужным набором тегов и конкретный вопрос "что из этого не получается"...

ksa 18.02.2013 13:57

Цитата:

Сообщение от ss18EXEL
появился допустим <input type='text'> где подставится значение чек 1

Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
label {
	display: block;
}
label + label {
	margin-top: 2px;
}
label [type='text'] {
	display: none;
}
</style>
<script type="text/javascript">
$(document).ready(function (){
	$(':checkbox').click(function (){
		if (this.checked) {
			$(this).next().show().val(this.value);
		} else {
			$(this).next().hide();
		};
	});
});
</script>
</head>
<body>
<form>
<label>
	Item 1
	<input type='checkbox' value='1' />
	<input type='text' value='' />
</label>
<label>
	Item 2
	<input type='checkbox' value='2' />
	<input type='text' value='' />
</label>
<label>
	Item 3
	<input type='checkbox' value='3' />
	<input type='text' value='' />
</label>
</form>
</body>
</html>

ss18EXEL 18.02.2013 15:25

очень благодарю то что доктор прописал!

ss18EXEL 18.02.2013 15:57

<label>
	Item 1
	<input type='checkbox' value='1' />
	<br><input type='text' value='' />
</label>

А почему если поставить с новой строки то уже не отображается вроде должно работать(

tsigel 18.02.2013 16:00

Цитата:

Сообщение от ksa
$(this).next()

означает что берется следующий элемент. Если вы вставляете <br> то он становится следующим элементом. (отсчет с элемента на который кликнули, т.е. чекбокс)

Используйте css (display: block) или исправтьте скрипт

ss18EXEL 18.02.2013 16:43

как бы скрипт исправить

ksa 18.02.2013 16:46

Цитата:

Сообщение от ss18EXEL
если поставить с новой строки

Использовать <br /> для отступов - дурной тон.

tsigel 18.02.2013 16:47

Либо:
$(this).next()
заменить на
$(this).next().next()

Либо:
$(this).next()
заменить на
$(this).parent().find('input')

ss18EXEL 18.02.2013 16:48

Цитата:

Сообщение от ksa (Сообщение 235320)
Использовать <br /> для отступов - дурной тон.

и какой же тон тогда использовать?

tsigel 18.02.2013 16:48

я же писал, используйте CSS

label input {display: block;}

ksa 18.02.2013 16:53

Цитата:

Сообщение от ss18EXEL
как бы скрипт исправить

Да хоть бы так...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
label {
	display: block;
}
label + label {
	margin-top: 2px;
}
label [type='text'] {
	display: none;
}
</style>
<script type="text/javascript">
$(document).ready(function (){
	$(':checkbox').click(function (){
		if (this.checked) {
			$(this).nextAll('input:text').show().val(this.value);
		} else {
			$(this).nextAll('input:text').hide();
		};
	});
});
</script>
</head>
<body>
<form>
<label>
	Item 1
	<input type='checkbox' value='1' />
	<br />
	<input type='text' value='' />
</label>
<label>
	Item 2
	<input type='checkbox' value='2' />
	<br />
	<input type='text' value='' />
</label>
<label>
	Item 3
	<input type='checkbox' value='3' />
	<br />
	<input type='text' value='' />
</label>
</form>
</body>
</html>

ss18EXEL 18.02.2013 17:00

Но теперь уже не отредактируешь так как оно скрывается при нажатии ((

tsigel 18.02.2013 17:08

Цитата:

Сообщение от ss18EXEL
Но теперь уже не отредактируешь так как оно скрывается при нажатии ((

Все пропало! :)

Deff 18.02.2013 17:10

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
input{
 	margin-bottom: 12px;
}
input[type='text']{
 	margin-left: 12px;
}
input{
 	margin-bottom: 12px;
           margin-top: 2px;
}

input + input{
	display: none;
}
input:checked + input[type='text'] {
	display: inline-block;
}
</style>
</head>
<body>

<form>
<label for=check1>Item 1</label>
	<input id=check1  type='checkbox' value='1' /><input  type='text'  value='' /><br />

<label for=check2>Item 2</label>
	
	<input id=check2 type='checkbox' value='2' /><input type='text' value='' /><br />

<label for=check3>Item 3</label>

	<input  id=check3 type='checkbox' value='3' /><input type='text' value='' /><br />

</form>

</body>
</html>

ss18EXEL 18.02.2013 17:21

интерестно то что оно не скрывает если текст выделять а если только нажать то он прячется (

Deff 18.02.2013 17:30

Поправил


Часовой пояс GMT +3, время: 12:58.