Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2011, 08:15
Новичок на форуме
Отправить личное сообщение для galart Посмотреть профиль Найти все сообщения от galart
 
Регистрация: 21.10.2009
Сообщений: 5

изменение значения input при смене значения select
Здравствуйте.
Небольшая задача. Есть поле input в которое вводиться какое либо слово, есть select c двумя option в value которых записаны 2 цвета. Требуется чтобы при изменении значения select, значение в input обертывалось span со стилем заданным в выбранном option.

$(function(){
        $('#options').change(function(){
	     curtext = $('#textfield').val();
	     curcolor = $('#options :selected').val();
	     result = '<span style="color:' + curcolor + '">' + curtext '</span>';
	     $('#textfield').val(result);
	})
})


<input style="width:600px" id="textfield" type="text" value="слово"/> 
		<select id="options">
			<option value="#000">Черный</option>
			<option value="#fff">Белый</option>
		</select>


Проблема в том что при первом выборе, когда введенное слово ещё не обрамлено в span все нормально, но если изменить select 2 и более раз скрипт начинает сохранять в переменную слово которое уже находиться в span и собственно уже это результат кладёт между новым тегом span.
Собственно вопрос в том, как сделать так чтобы при каждом срабатывании в span вставлялось только введенное слово.
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2011, 08:31
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Так а зачем span если можно просто полю css свойства менять ?
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>
$(function(){
        $('#options').change(function(){
         curcolor = $('#options :selected').val();
		 $('#textfield').css('color', curcolor);
    })
});
</script>
</head>
<body>
<input style="width:600px" id="textfield" type="text" value="слово"/>
<select id="options">
    <option value="#000">Черный</option>
    <option value="#fff">Белый</option>
    <option value="red">Красный</option>
</select>
</body>
</html>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2011, 14:24
Новичок на форуме
Отправить личное сообщение для galart Посмотреть профиль Найти все сообщения от galart
 
Регистрация: 21.10.2009
Сообщений: 5

Дело в том что после выбора данные будут отправлены на сервер, и текст будет отображен поверх какой либо картинки (разный цвет для контраста). Как я понимаю данные о цвете поля на сервер не передаются.
Ответить с цитированием
  #4 (permalink)  
Старый 13.06.2012, 18:10
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>

<input style="width:400px" id="textfield" type="text" value="слово"/> 

		<select id="options">
			<option value="#000">Черный</option>
			<option value="#fff">Белый</option>
		</select>


<script type="text/javascript">
var noFirst=false;
$(function(){
        $('#options').change(function(){
	     var curtext = $('#textfield').val();
          if(noFirst){
	       curtext = curtext.replace(/<span[^>]*>([^<]*)\<\/span>/img,"$1")
	     } noFirst=true;
	     var curcolor = $(this).val();
	     var result = '<span style="color:' + curcolor + '">' + curtext + '</span>';
	     $('#textfield').val(result);
	})
})
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 30.01.2015, 19:39
Аватар для Globus
Аспирант
Отправить личное сообщение для Globus Посмотреть профиль Найти все сообщения от Globus
 
Регистрация: 04.03.2014
Сообщений: 76

А как сделать, чтобы в инпут выводился не код с цветом и не цветное слово, а именно название цвета?
Т.е. выбрали в селекте Чёрный и в инпуте value стало = Чёрный


Понял:


<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script> 

<script type="text/javascript"> 
$(window).load(function(){
$(".selector").change(function() {
    var $value = $(this).val();
    var $title = $(this).children('option[value='+$value+']').html();
    $('input#colorr').val($title);
}); 
}); 
</script>

 
   <select class="selector">
    <option value="1000000">Белый</option>
    <option value="2000000">Красный</option>
    <option value="3000000">Чёрный</option>
</select>

    
<input id="colorr" class="colorr" value="" name="testinput"">

Последний раз редактировалось Globus, 30.01.2015 в 20:10.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение изображения при наведении mishko_o Элементы интерфейса 4 24.10.2011 16:20
Изменение множества элементов Input по определённом призна Лавсановые Волокна Элементы интерфейса 1 24.12.2010 10:37
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
Как сделать плавное изменение размеров контейнеров при смене AJAX-содержимого Nominus umbra Общие вопросы Javascript 3 27.01.2010 13:32
при выборе в 1-ом select соот.-щая инф. отображается в другом select celencer Общие вопросы Javascript 1 24.05.2009 20:38