Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как при смене значения одного поля передать значение другого поля? (https://javascript.ru/forum/misc/53342-kak-pri-smene-znacheniya-odnogo-polya-peredat-znachenie-drugogo-polya.html)

javascript_pupil 30.01.2015 11:06

Как при смене значения одного поля передать значение другого поля?
 
Есть следующая конструкция, прикрученная к одному из полей формы:

onChange="submitForm(this.value, another.value)


Параметр this.value передаёт значение поля, после его изменения, а вот как передать "another.value"? Пробовал document.form.field_name.value - приходит undefined. Пробовал просто field_name.value - тоже самое.

Как передать из формы текущее значение одного из её полей при смене другого поля?

P.S. Разумеется form и field_name соответствуют названию формы и названию соответствующего поля.

рони 30.01.2015 11:16

javascript_pupil,
this.form.field_name.value

javascript_pupil 30.01.2015 12:00

Получилось, спасибо! Только я не понял, почему this.form.field_name.value работает, а если заменить "form" на реальное имя формы, то не работает?

рони 30.01.2015 12:39

javascript_pupil,
:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>
<form action="http://" name="test">
    <input name="bumbum" type="radio" value="5">
    <input name="bumbum" type="radio" value="15" checked="checked">
    <input name="field_name"><input name="" onChange="alert([this.value, document.test.field_name.value, document.querySelector('[name=\'bumbum\']:checked').value])" >
</form>
</body>

</html>

javascript_pupil 30.01.2015 13:15

Спасибо! Теперь ясно: либо this.form либо document.formname.

Теперь пытаюсь передавать значение radio поля - опять не передаётся, хотя все input type=text работают.

javascript_pupil 30.01.2015 13:31

Поясню задачу. Нашел несколько примеров, когда значения радио-кнопки определяются в дополнительной функции. Но мне каким-то образом надо сделать, чтобы всё это было в одной строке, которая должна жить в onChange, как в первом примере и как в сообщении № 4.

рони 30.01.2015 14:10

javascript_pupil,
вы похоже ... маитесь.
смотрите 4 пост.

javascript_pupil 31.01.2015 10:15

Очень интересный вопрос возник: как эту прелесть:
document.querySelector('[name=\'bumbum\']:checked').value])

вставить внутрь ещё одних одинарных кавычек? Например сюда:
insertAdjacentHTML('beforeEnd','<input type="text" name="field_name" value="" onChange="alert([this.value, document.querySelector('[name=\'lalala\']:checked').value]')">');
Приведённый пример разумеется не работает. Непонятно как экранировать одинарные кавычки внутри одинарных кавычек. Каламбурчик получился смешной, но непонятный.

рони 31.01.2015 11:00

javascript_pupil,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>
<form action="http://" name="test" id="test">
    <input name="bumbum" type="radio" value="5">
    <input name="bumbum" type="radio" value="15" checked="checked">
</form>
<script>
    test.insertAdjacentHTML('beforeEnd','<input type="text" name="field_name" value="" onChange="alert([this.value, document.querySelector(\'[name=bumbum]:checked\').value])"  >');
</script>
</body>

</html>

javascript_pupil 31.01.2015 11:58

рони, не знал, что так просто. Спасибо! А это по канонам? Если да, то зачем ставили одинарные кавычки до этого? Моя запуталась.


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