Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 106
1

Значение value

21.08.2017, 21:02. Показов 796. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть два радиобокса по 3 значения
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<p>Расоложение перед/зад</p>
                                     <div class="btn-group btn-group-justified style-FrontOrBack">
                                          <label class="btn btn-default">
                                              <input type="radio" name="FORONTBACK" value="Front">
                                              Перед
                                          </label>
                                          <label class="btn btn-default">
                                              <input type="radio" name="FORONTBACK" value="Back">
                                              Зад
                                          </label>
                                          <label class="btn btn-default">
                                              <input type="radio" name="FORONTBACK" value="FrontOrBack">
                                              Любое
                                          </label>
                                      </div>
 
 <p>Расположени лево/право</p>
                                      <div class="btn-group btn-group-justified style-LeftOrRight">
                                          <label class="btn btn-default">
                                              <input type="radio" name="LEFTRIGHT" value="Left">
                                              Лево
                                          </label>
                                          <label class="btn btn-default">
                                              <input type="radio" name="LEFTRIGHT" value="Right">
                                              Право
                                          </label>
                                          <label class="btn btn-default">
                                              <input type="radio" name="LEFTRIGHT" value="LeftOrRight">
                                              Любое
                                          </label>
Как получить значения каждого из двоих радио при клике, если для манипуляций с классами использую:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var FB, LR;
$(function() {
    $(".style-FrontOrBack label").click(function(e) {
        e.preventDefault();
        $(".style-FrontOrBack label").removeClass('active');
        $(this).addClass('active');
 
        var value = $(this).val();
        alert(value);
 
    })
});
 
$(function() {
    $(".style-LeftOrRight label").click(function(e) {
        e.preventDefault();
        $(".style-LeftOrRight label").removeClass('active');
        $(this).addClass('active');
 
        LR = $(this).val();
 
    })
});
Но в значение попадает пустая строка, а не value выбранного бокса. Как можно и класс добавить, и значение получить в переменную?(Вставилось с отступом само, не специально)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2017, 21:02
Ответы с готовыми решениями:

Присвоить логической переменной T значение true, если значение d-цифра, и значение false в противном случае
Имеется символьная переменная d, присвоить логической переменной T значение true, если значение...

Описать процедуру ShiftLeft3(A, B, C), выполняющую левый циклический сдвиг: значение A переходит в C, значение C — в B, значение В-в А
Описать функцию ShiftLeft3(A, B, C), выполняющую левый циклический сдвиг: значение A переходит в C,...

Найти значение 3-го по величине элемента и значение всех элементов массива, которые его превышают, заменить на найденное значение
Работа с массивами:

В одномерном массиве определить среднее значение всех элементов,значение которых превышает среднее значение
в произвольно заданном одномерном массиве определить среднее значение всех элементов,значение...

4
2232 / 1278 / 611
Регистрация: 23.08.2015
Сообщений: 3,228
21.08.2017, 22:28 2
The Terry, 1) вы пытаетесь достать value у label
Javascript
1
var value = $('input', this).val();
2) А зачем вы делаете e.preventDefault();? Вы таким образом отменяете действие по умолчанию, т.е. выделение инпута. Таким образом при клике на label вы никак не воздействуете на input, не будет изменяться его состояние (checked) и его значение будет игнорироваться при отправки формы либо при .serialyze()
3) не совсем корректно вешать обработчик на клик по label, правильнее будет вешать на событие change input-a, ведь я к примеру могу изменить состояние инпутов не только по клику, но и программно. Даже в вашем случае, состояние инпута не меняется, однако внешне выглядит как-будто он выделен.
0
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 106
21.08.2017, 22:55  [ТС] 3
sad67man, про preventDefault понял, спасибо) А так же про то, что достаю у label. На счет того, что обратобчки на label, то могу сказать что просто сделал так чтобы стилизовать radio. Так же состояние импутов у меня как раз таки меняется по нажатию по label.
Вот смотрите, если пойти таким путем, то мне все выводит как нужно, но я уверен что это слишком уж корявый метод
Просто далее мне нужно менять картинку в зависимости от выбранных импутов, а тут из 9 комбинация получается, а это как я понимаю на switch напрашивается, и получается что мне к этому "набору" придется крутить в дополнение и свитч, верно?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var FB, LR;
$('input:radio[name=FORONTBACK]').on('change', function () {
    var FB = $(this).val();
    alert(FB);
});
$('input:radio[name=LEFTRIGHT]').on('change', function () {
    var LR = $(this).val();
    alert(LR);
});
 
 
 
$(function() {
    $(".style-FrontOrBack label").click(function() {
        $(".style-FrontOrBack label").removeClass('active');
        $(this).addClass('active');
    })
});
 
$(function() {
    $(".style-LeftOrRight label").click(function() {
        $(".style-LeftOrRight label").removeClass('active');
        $(this).addClass('active');
 
    })
});
0
2232 / 1278 / 611
Регистрация: 23.08.2015
Сообщений: 3,228
21.08.2017, 23:59 4
The Terry, Если я правильно вас понял, то у вас получается есть 9 картинок? Измените их названия, к примеру "Front_Left.png", "Back_LeftOrRight.png" и т.д. Таким образом вам не нужны никакой switch, просто берете значения выделенных радиокнопок и составляете имя картинки.

Добавлено через 13 минут
The Terry,
Цитата Сообщение от The Terry Посмотреть сообщение
Так же состояние импутов у меня как раз таки меняется по нажатию по label.
Я и имел в виду кастомизацию. При e.preventDefault(); не менялся. я как раз это и привел в пример, что это не совсем корректно. Тут можно либо через js написать некую универсальный обработчик, который будет отвечать за внешний вид для всех инпутов типа радио. Либо кастомизировать чисто на css, в таком случае не нужно вкладывать input в label. Вот простой пример
HTML5
1
2
3
4
5
6
7
8
<div class="btn-group btn-group-justified style-FrontOrBack">
    <input type="radio" name="LEFTRIGHT" value="Left" id="LEFTRIGHT1">
    <label class="btn btn-default" for="LEFTRIGHT1">Лево</label>
    <input type="radio" name="LEFTRIGHT" value="Right" id="LEFTRIGHT2">
    <label class="btn btn-default" for="LEFTRIGHT2">Право</label>
    <input type="radio" name="LEFTRIGHT" value="LeftOrRight" id="LEFTRIGHT3">
    <label class="btn btn-default" for="LEFTRIGHT3">Любое</label>
</div>
CSS
1
2
3
4
5
6
input[type="radio"] {
  display:none;
}
input[type="radio"]:checked + label {
  background: green;
}
https://jsfiddle.net/j9rhs350/
1
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 106
22.08.2017, 21:09  [ТС] 5
sad67man, я вас понял, спасибо большое, сделаю именно через css. Но вот вопрос по поводу switch остался, все таки у меня формируется картинка из двух состояний двух radio. Как в этом случае можно поступить?
https://jsfiddle.net/uy7asdyr/

p.s. Изменять картинку правильно через?
Javascript
1
$("#my_image").attr("src","***.jpg");
Добавлено через 1 час 0 минут
Уже во всем разобрался без switch, спасибо
0
22.08.2017, 21:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2017, 21:09
Помогаю со студенческими работами здесь

Определить, сколько чисел принимает наименьшее значение и каково это значение
Наптсат программу, обеспечивающий, ввод n целых чисел и определяющий, сколько из них принимает...

Вычислить среднее значение элементов массива. Вывести на дисплей полученное значение
Вычислить среднее значение элементов массива. Вывести на дисплей полученное значение. После этого...

Поменять значение строки или столбца файла на введенное пользователем значение
В текстовый файл Hrube.in записано следующее: assign(f,'C:\I-1326\Hrube.in'); rewrite(f);...

Найти минимальное значение в матрице и заменить элементы столбика на это значение
Найти минимальное значение массива и заменить элементы столбика на это значение Размер массива 4*4

Вывести на экран номер и значение элементов массива, абсолютное значение которых < 15
Сделайте задачу про массивы, по блок-схеме

Вычислить значение z, соответствующие каждому значению x. Определить максимальное по модулю значение z.
Помогите написать программу: Вычислить значение z, соответствующие каждому значению x (xn&lt;x&lt;xk,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru