Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
-20 / 0 / 4
Регистрация: 04.08.2015
Сообщений: 346
1

Как передать параметр из jsp java страницы в функцию javascript и возвратить обратно другой параметр

21.08.2018, 13:11. Просмотров 1749. Ответов 7
Метки нет (Все метки)

На jsp странице имеется динамически формируемая таблица с чекбоксами в первой колонке каждой строки
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<tbody>
            <c:forEach items="${students}" var="student">
                <tr>
                    <th scope="col">
                        <div class="checkbox">
                            <input type="checkbox" id="${student.id}" onclick="myFunction()">
                        </div>
                    </th>
        ..... 
                   <td>
                        <a class="btn btn-primary disabled" href="#" role="button">Edit</a> &nbsp
                        <a class="btn btn-primary disabled" href="#" role="button">Add Mark</a>
                        <p id="text" style="display:none">Checkbox is CHECKED!</p>
                    </td>
                </tr>
            </c:forEach>
            </tbody>
В последней колонке имеются кнопки Edit и Add Mark в неактивном состоянии.
Задача состоит в том чтобы при выборе чекбокса в какой-либо строке в этой строке кнопки Edit и Add Mark перевести в активное состояние.
Для начала зацепился за такой код
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script language="javascript">
    function myFunction() {
        var mum = 2;
        // Get the checkbox
        var checkBox = document.getElementById(mum.toString());
        // Get the output text
        var text = document.getElementById("text");
 
        // If the checkbox is checked, display the output text
        if (checkBox.checked == true){
            text.style.display = "block";
        } else {
            text.style.display = "none";
        }
    } </script>
Но на этом все и стало.
Подскажите пожалуйста в нескольких словах как это делается. Как можно обмениваться переменным между java и javascript?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2018, 13:11
Ответы с готовыми решениями:

Как передать данные JavaScript в GET параметр PHP?
в странице есть список сотрудников компании. при клике на определенного сотрудника выходит...

Как в функцию передать параметр строку?
&lt;script&gt; function loadXMLDoc(&quot;ПАРАМЕТР СТРОКА&quot;) { // &quot;ПАРАМЕТР СТРОКА&quot; var xmlhttp; ...

Как передать параметр в функцию, саму являющуюся параметром?
например, в setTimeout.

Как передать в функцию параметр объекта hr (линия) для её прорисовки
Здравствуйте! Подскажите пожалуйста как мне передать в мою функцию параметр объекта hr (линия)...

7
1258 / 965 / 443
Регистрация: 11.07.2016
Сообщений: 2,612
21.08.2018, 13:51 2
Попробуйте так:
Javascript
1
2
3
$('table input[type="checkbox"]').on('change', function() {
  $(this).closest('tr').find('.btn').toggle('disabled');
});
Требуется подключение jQuery.
1
-20 / 0 / 4
Регистрация: 04.08.2015
Сообщений: 346
21.08.2018, 14:34  [ТС] 3
Спасибо.
Классно. Только бутоны при выборе чекбокса совсем исчезают.
Изначально они находятся в неактивном состоянии (disabled в class="btn btn-primary disabled")
HTML5
1
<a class="btn btn-primary disabled" href="#" role="button">Edit</a>
Я так понимаю, что нужно в строке class="btn btn-primary disabled" убрать только disabled и бутоны станут активными.
Как это сделать?
0
1258 / 965 / 443
Регистрация: 11.07.2016
Сообщений: 2,612
21.08.2018, 15:12 4
Цитата Сообщение от VlGuvin Посмотреть сообщение
Я так понимаю, что нужно в строке class="btn btn-primary disabled" убрать только disabled и бутоны станут активными.
Как это сделать?
Код выше именно это и делает. Просто добавляет/удаляет класс disabled. Возможно где-то в вашем CSS или движке прописано скрывать элементы a.disabled
0
-20 / 0 / 4
Регистрация: 04.08.2015
Сообщений: 346
21.08.2018, 16:06  [ТС] 5
В качестве CSS используется bootstrap 4.
Он правильно работает только когда все прописывается в одной строке класса.
HTML5
1
<a class="btn btn-primary disabled" href="#" role="button">Edit</a>
Он будет правильно работать если
HTML5
1
class="btn btn-primary disabled"
полностью заменить на
HTML5
1
class="btn btn-primary"
Добавлено через 10 минут
Искал по bootstrap.css a.disabled. Не находит..

Добавлено через 12 минут
Вроде все правильно
.toggleClass( className )

className

Тип: Строка

Добавляет или удаляет заданный в className класс(ы). Если классов несколько, то в строке className они должны быть разделены пробелами.
Странно, почему исчезают бутоны..
0
1258 / 965 / 443
Регистрация: 11.07.2016
Сообщений: 2,612
21.08.2018, 16:16 6
Javascript
1
2
3
$('table input[type="checkbox"]').on('change', function() {
  $(this).closest('tr').find('.btn').toggleClass('disabled');
});
Добавлено через 1 минуту
Ошибка в моём коде конечно же
1
-20 / 0 / 4
Регистрация: 04.08.2015
Сообщений: 346
21.08.2018, 16:41  [ТС] 7
Спасибо. Работает. Это я невнимателен...
0
-20 / 0 / 4
Регистрация: 04.08.2015
Сообщений: 346
22.08.2018, 11:10  [ТС] 8
В продолжение темы про передачу параметров пытаюсь сделать модальное окно на базе bootstrap примерно так

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<html>
<head>
    <title>Title</title>
    <!-- Bootstrap core CSS -->
    <link href="<c:url value="../resources/css/bootstrap.css" />" rel="stylesheet">
 
    <script src="../resources/js/jquery-1.11.3.min.js"></script>
 
    <script src="../resources/js/bootstrap.min.js"></script>
 
</head>
 
<form:form >
 
<div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Edit user</h4>
            </div>
            <div class="modal-body">
                <form class="form-horizontal" role="form">
                    <div class="form-group">
                        <label class="col-sm-3 control-label" for="firstNameInput">First name</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control" id="firstNameInput" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label" for="lastNameInput">Last name</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control" id="lastNameInput" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label" for="emailInput">E-mail</label>
                        <div class="col-sm-9">
                            <input type="email" class="form-control" id="emailInput" />
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-sm-offset-3 col-sm-10">
                            <button type="submit" class="btn btn-default">Save</button>
                        </div>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>
</form:form>
<table class="table table-hover">
    <thead>
    <tr>
        <th>Firstname</th>
        <th>Lastname</th>
        <th>Email</th>
        <th></th>
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </tr>
    </thead>
    <tbody>
   
    <c:forEach items="${students}" var="student">
        <tr id="user-${student.id}">
            <td>${student.firstName}</td>
            <td>${student.lastName}</td>
            <td>
                <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" data-user-id="${student.id}">Edit</button>
            </td>
        </tr>
    </c:forEach>
    </tbody>
</table>
 
 
<script>
    $("#myModal").on('show.bs.modal', function(e) {
        var userId = $(e.relatedTarget).data('user-id');
 
        var cols = $('#user-' + userId + ' td');
        var firstName = $(cols[0]).text();
        var lastName = $(cols[1]).text();
 
        $('#firstNameInput').val(firstName);
        $('#lastNameInput').val(lastName);
        $('#emailInput').val(mail);
    });
 
    $("#myModal").on('hidden.bs.modal', function() {
        var form = $(this).find('form');
        form[0].reset();
    });
</script>
 
 
</body>
</html>
Данная страница открывается из Spring java и выводит таблицу со списком студентов в каждой строке имеется кнопка Edit
Цель состоит в том, чтобы при нажатии на кнопку выскочило модольное окно с формой.
Для этого применен код с javascript
Но модальное окно никак не хочет выскакивать.
Подскажите пожалуйста в чем ошибка?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2018, 11:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передать параметр функции javascript в формате Json
Здравствуйте. Запутался с кавычками. Есть виджет, который выводит на карту (яндекс) объекты. при...

Не получается передать параметр в функцию
Подскажите, пожалуйста, хочу сделать так чтобы при наджатии кнопки фон страницы изменялся, но не...

Как передать параметр javascript контроллеру и обратно
Только начал изучать asp.net. Пытаюсь сделать простейшую вещь: Хочу определить объект javascript:...

Можно ли передать указатель на функцию как параметр другой функции?
В общем, вопрос. Можно ли, допустим ... int fun1(int x) { ... ... ... return x*1000; }


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.