Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   атрибуты data (https://javascript.ru/forum/jquery/39924-atributy-data.html)

Valentinka_1 17.07.2013 12:28

атрибуты data
 
Доброго времени суток.
На странице есть элемент select с 3мя option. У каждого option усть по 2 атрибута data. Не получается передать значения data в js. Вот код
Код JavaScript

var plat_pb;
    var plat_otb;
    function updatePlat()
    {
        $('[name=oplata] option').each(function() { 
            if($(this).text() == $('[name=oplata]').val())
            {
                plat_pb = parseFloat($(this).attr("data-pb"));  
                plat_otb = parseInt($(this).attr("data-otb"));
            }
        });
    }

Код HTML

<td><select name="oplata">
<option data-pb="1.01" data-opt="0"> 1</option>
<option data-pb="1" data-otp ="0.75">2</option>
<option data-pb="1" data-otp ="0">3</option>
</select></td>

Судя по всему проблема в том , что не попадает в if, но я никак не могу понять в чем причина.

danik.js 17.07.2013 13:07

Ну и огород. Во-первых, не нужно так искать выбранный опшн.
Во-вторых метод $(this).data() сам возьмет значение из data-атрибута:
var option = $('[name=oplata]').prop('selectedOption');
        // или может $('[name=oplata] option:checked');
        plat_pb = $(option).data("pb"); 
        plat_otb = $(option).data("otb");

рони 17.07.2013 13:14

Valentinka_1,
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>

<body>
<table>
<td><select name="oplata">
 <option data-pb="1.01" data-opt="0"> 1</option>
 <option data-pb="1" data-opt="0.75">2</option>
 <option data-pb="1" data-opt="0">3</option>
</select></td>
</table>
<input  type="button" value="go">
<script>
    var plat_pb;
    var plat_opt;
    $('input').click(updatePlat)
    function updatePlat()
    {
    var selected =  $('[name=oplata] option:selected');
    plat_pb = selected.data('pb');
    plat_opt = selected.data('opt');
    alert([plat_pb,plat_opt])
    }

</script>
</body>

</html>

рони 17.07.2013 13:16

Цитата:

Сообщение от Valentinka_1
attr("data-otb"));

нет такой буквы


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