Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
16th
Сен
Яваскрипт вычисление sin или cos в зависимости от выбора select javascript — как с одной кнопки вызвать две функции события onclick ?
Posted by obzor under JavaScript
изучаю javascript.
Не пойму работу с select, пробовал написать условие выбора селект и по индексу options и по значение value.
Не выполняется условие.
Отдельно могу вывести все значения из элементов с id:t,select1,select2..
Что не так в условии, вроде логически все верно написал.
<script type="text/javascript">
function add (){
var x = document.getElementById('t').value;
if (formselect.select.options==0) {
document.getElementById('result').innerHTML=Math.sin(x);
}
else if (formselect.select.options==1){
document.getElementById('result').innerHTML=Math.cos(x);
}
}
</script>
<form name="formselect">
<select id="select">
<option id="select1" value="sin">sin</option>
<option id="select2" value="cos">cos</option>
</select>
<input type="text" id="t" value=""/>
<input type="button" onclick="add(this)" value="Вычислить"/>
</form>
<div id="result"></div>
Сделал так, синус находит. Переключаю селект на cos, косинус не находит.
Повторно вызвать функцию? после переключения?
function add (){
var x = document.getElementById('t').value;
if (formselect.select.options[0]) {
document.getElementById('result').innerHTML=Math.sin(x);
}
else if (formselect.select.options[1]){
document.getElementById('result').innerHTML=Math.cos(x);
}
}
Можно переопределить обработчик события:
<script type="text/javascript">
function t_sin(){
var x = document.getElementById('t').value;
document.getElementById('result').innerHTML=Math.sin(x);
}
function t_cos(){
var x = document.getElementById('t').value;
document.getElementById('result').innerHTML=Math.cos(x);
}
</script>
<form name="formselect">
<select id="select">
<option value="sin" onclick="document.getElementById('t_button').onclick=t_sin">sin</option>
<option value="cos" onclick="document.getElementById('t_button').onclick=t_cos">cos</option>
</select>
<input type="text" id="t" value=""/>
<input id="t_button" type="button" onclick="t_sin()" value="Вычислить"/>
</form>
<div id="result"></div>
Понятно, что ты хотел, зачем усложнял код массивом, если нужно было ввести всего одну переменную
<script type="text/javascript">
function add (){
var x = document.getElementById('t').value;
let vl = document.getElementById('select').value;
if (vl=="sin") {
document.getElementById('result').innerHTML=Math.sin(x);
}
if (vl=="cos") {
document.getElementById('result').innerHTML=Math.cos(x);
}
}
</script>
<form name="formselect">
<select id="select">
<option id="select1" value="sin">sin</option>
<option id="select2" value="cos">cos</option>
</select>
<input type="text" id="t" value=""/>
<input type="button" onclick="add(this)" value="Вычислить"/>
</form>
<div id="result"></div>
Но правильнее делать как я написал в первом своём ответе, как это сделано в коде Arigato
на каждое действие должно быть своя функция, а из функции, никаких проблем вызвать другие функции нет.
Так как я тему переименовал и другим пригодится как хороший пример )
вот код вызова с одной кнопки две функции события onclick , также можно вызвать три, четыре и пять ))
Это называется функциональное программирование, которому вас и учит веб языки, типа явасрипт, пхп.
<script type="text/javascript">
function t_sin(){
var x = document.getElementById('t').value;
document.getElementById('result').innerHTML=Math.sin(x);
}
function t_cos(){
var x = document.getElementById('t').value;
document.getElementById('result').innerHTML=Math.cos(x);
}
function t_all(){
var x = document.getElementById('t').value;
let vl = document.getElementById('select').value;
if (vl=="sin") {
t_sin();
}
if (vl=="cos") {
t_cos();
}
}
</script>
<form name="formselect">
<select id="select">
<option value="sin">sin</option>
<option value="cos">cos</option>
</select>
<input type="text" id="t" value=""/>
<input id="t_button" type="button" onclick="t_all()" value="Вычислить"/>
</form>
<div id="result"></div>
Случайные статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)