Javascript.RU

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

Взять две переменные из двух выпадающих списков и вывести их в input
Здравствуйте. Есть два значения name и name1. Как сделать чтобы в поле input вывелось name пробел name1? Просто сложить их вот так калькулятором не удалось Где ошибка и почему?

function calculat() {
	
	var name2 = name + name1;
	
	document.getElementById("name + name1").value=v2;
};





<select onchange="changeSel(this);">
<option value='1'></option>
<option value="2">Mersedes</option>
 </select>

<select onchange="changeSel1(this);">
  <option value="1">S-Class</option>
  <option value="2">Sprinter</option>
  
</select>

</br>
</br>

<input type="text" name="" id="name2" value="">


<script type='text/javascript'>
function changeSel(el){
var v, n;
n=el.selectedIndex;
v=el[n].text;
document.getElementById("name").value=v;
};
function changeSel1(el){
var v1, n1;
n1=el.selectedIndex;
v1=el[n1].text;
document.getElementById("name1").value=v1;
};
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2014, 20:31
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Чувааак, подучи JS, я запутался в логике кода, тут наркомания какая-то))

//сложение с пробелом
document.querySelector('#name2').value = name + ' ' + name1;
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2014, 21:04
Новичок на форуме
Отправить личное сообщение для Kolko Посмотреть профиль Найти все сообщения от Kolko
 
Регистрация: 05.08.2014
Сообщений: 4

я понимаю, что я не грамотный в яваскрипте, но хочу разобраться как это работает)). За основу был взят код с какого-то сайта.
Я правильно понимаю, что document.querySelector нужно заносить в onclick поля?

Последний раз редактировалось Kolko, 05.08.2014 в 21:07.
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2014, 22:07
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Kolko,
а тебе именно по клику надо?

Вот пример по клику:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
<input type="text" id="my-id" onclick="calculat()">
</body>
<script>

  function calculat() {

    var name = 'значение';
    var name1 = 'значение1';

    document.querySelector('#my-id').value = name + ' ' + name1;

  }


</script>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2014, 01:40
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 1,586

Kolko, заносите!
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2014, 08:01
Новичок на форуме
Отправить личное сообщение для Kolko Посмотреть профиль Найти все сообщения от Kolko
 
Регистрация: 05.08.2014
Сообщений: 4

Сообщение от Safort Посмотреть сообщение
Kolko,
а тебе именно по клику надо?
да, т.е. когда выбрал значение из списка и нажал Mersedes и, например, Sprinter, то в my-id заносится Mersedes Sprinter и немедленно отображается в input.
Благодарю, что помогаете.
Но почему когда мы складываем функцией calculat значение name и name1 они не складываются? Их как будто не существует Вот весь мой код:

<select onchange="changeSel(this);">
<option value='1'></option>
<option value="2">Mersedes</option>
 </select>

<select onchange="changeSel1(this);">
  <option value="1">S-Class</option>
  <option value="2">Sprinter</option>
  
</select>

</br>
</br>

<input type="text" id="my-id" onclick="calculat()">


<script type='text/javascript'>
function changeSel(el){
var v, n;
n=el.selectedIndex;
v=el[n].text;
document.getElementById("name").value=v;
};
function changeSel1(el){
var v1, n1;
n1=el.selectedIndex;
v1=el[n1].text;
document.getElementById("name1").value=v1;
};
function calculat() {
var name = 'name';
var name1 = 'name1';
document.querySelector('#my-id').value = name + ' ' + name1;
};
</script>

Последний раз редактировалось Kolko, 06.08.2014 в 08:06. Причина: {
Ответить с цитированием
  #7 (permalink)  
Старый 06.08.2014, 12:00
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Kolko,
Цитата:
Но почему когда мы складываем функцией calculat значение name и name1 они не складываются? Их как будто не существует
Проверил у себя этот код и как раз таки calculat это единственное, что работает.

А вот эта часть вообще не понятна для чего
document.getElementById("name").value=v;

Ведь у тебя нет элемента с id = name

Кароч, вот код:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>

<select onchange="changeSel();">
  <option value="2">Mersedes</option>
  <option value='1'></option>
</select>
 
<select onchange="changeSel();">
  <option value="1">S-Class</option>
  <option value="2">Sprinter</option>
</select>
 
</br>
</br>
 
<input type="text" id="my-id" onclick="calculat()">

<script type='text/javascript'>

  function changeSel() {

    var selects = document.querySelectorAll('select');
    var el1 = selects[0].selectedIndex;
    var el2 = selects[1].selectedIndex;

    document.querySelector('#my-id').value = selects[0].options[el1].text +
                                             ' ' + 
                                             selects[1].options[el2].text;
  }

</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 06.08.2014, 12:24
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 1,586

Kolko, так еще можно:
<select id="marka" onchange="changeSel()">
	<option value="">----------</option>
	<option value="Mersedes">Mersedes</option>
</select>
<select id="model" onchange="changeSel()">
	<option value="">----------</option>
	<option value="S-Class">S-Class</option>
	<option value="Sprinter">Sprinter</option>
</select>
</br></br>
<input type="text" id="auto">

<script>
function changeSel() {
	if (marka.value) {
		auto.value = marka.value + ' ' + model.value;
	} else {
		model.selectedIndex = 0;
		auto.value = '';
	}
}
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 06.08.2014, 13:09
Новичок на форуме
Отправить личное сообщение для Kolko Посмотреть профиль Найти все сообщения от Kolko
 
Регистрация: 05.08.2014
Сообщений: 4

блин, это чертовски круто работает!!!
Safort, Rise,
респект!

Последний раз редактировалось Kolko, 06.08.2014 в 13:11.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27