console.log(myvar) muestra undefined cuando no debería serlo. El último console.log shows exactamente la etiqueta completa, donde puedo ver que data-mydata tiene un valor. ¿Por qué está pasando esto?
@foreach (var item in Model) { <div class="row"> <label class="col-md-offset-3 col-md-9"> <input type="radio" class="myclass" id="@item.Id" name="myname" onchange="myHandler()" value="@item.property" data-mydata="@Html.Encode(item.property2)"/> @item.Name </label> </div> } <script> function myHandler() { var myvar = $(this).data('mydata'); console.log(myvar); console.log($("input[name='myName']:checked")[0]); } </script>Intenta pasar this a myHandler :
@foreach (var item in Model) { <div class="row"> <label class="col-md-offset-3 col-md-9"> <input type="radio" class="myclass" id="@item.Id" name="myname" onchange="myHandler(this)" value="@item.property" data-mydata="@Html.Encode(item.property2)"/> @item.Name </label> </div> } <script> function myHandler(t) { var myvar = $(t).data('mydata'); console.log(myvar); console.log($("input[name='myName']:checked")[0]); } </script>