Показать сообщение отдельно
  #4 (permalink)  
Старый 11.01.2019, 08:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А подключение jquery ради этого?
var sum = $('#opt').val();
$('#sum').val(sum);

Используйте тогда его на всю катушку:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
#datatable {
    width: 600px;
    border-collapse: separate;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
    var tbl = $('#datatable').on('click change', 'button,select', function(e) {
        var src = $(this);
        if(src.hasClass('opt')) {
            src.parent().next().find('input').val(src.val())
        } else {
            var tr = src.closest('tr');
            if(src.hasClass('add')) {
                tr.clone().find('input').val('').end().find('button').toggleClass('add del').text('Удалить строку').end().appendTo(tbl)
            }
            else tr.remove() 
        }
    })    
})
</script>
</head>

<body>

<table id="datatable">
    <tr>
        <td>
            <select class="opt">
                <option value="80">- грант в рамках академической мобильности</option>
                <option value="60">- международные конкурсы, олимпиады (1 место)</option>
                <option value="50">- международные конкурсы, олимпиады (2 место)</option>
                <option value="40">- международные конкурсы, олимпиады (3 место)</option>
                <option value="50">- всероссийские конкурсы, олимпиады (2-3 тур, 1 место)</option>
                <option value="40">- всероссийские конкурсы, олимпиады (2-3 тур, 2 место)</option>
                <option value="30">- всероссийские конкурсы, олимпиады (2-3 тур, 3 место)</option>
                <option value="20">- региональные конкурсы, олимпиады (1 место)</option>
                <option value="15">- региональные конкурсы, олимпиады (2 место)</option>
                <option value="10">- региональные конкурсы, олимпиады (3 место)</option>
                <option value="15">- городские или вузовские конкурсы, олимпиады (1 место)</option>
                <option value="10">- городские или вузовские конкурсы, олимпиады (1 место)</option>
                <option value="5">- городские или вузовские конкурсы, олимпиады (1 место)</option>
            </select>
        </td>
        <td>
            <input type="text" name="sum" size="5" >
        </td>
        <td>
            <button class="add">Добавить строку</button>
        </td>
    </tr>
</table>
</body>
</html>


Замечание: Если это как часть формы и будет передаваться на сервер, то в общем никакого поля "sum" не требуется, сам список уже отображает выбор, а если и передавать, то в зависимости от серверного языка можно получить значение только последнего поля. При добавлении строки, получение фокуса списком в поле "sum" сразу будет вставлено значение первой опции, так как список не имеет опции с пустым значением, это обусловлено способом установки обработчиков. Но не логичен сам подход - если список не имеет опции приглашающей сделать выбор и с пустым значением, то поместить значение первой опции в поле "sum" можно только после выбора какой либо иной опции.

Последний раз редактировалось laimas, 11.01.2019 в 08:41.
Ответить с цитированием