Próbuję dostosować wygląd i pól wyboru w mojej strony ASP.NET MVC, przy użyciu techniki jak ten szczegółowo tutaj: http://cssdeck.com/labs/css-checkbox-stylesMVC dodatkowo ukryte pole w formach łamiącym niestandardowych css pole
działają świetnie z wyjątkiem przypadków umieszczonych w formularzu. Przy wykorzystaniu metody @ Html.CheckBoxFor() MVC dodaje dodatkowy ukryty wyboru, widocznie, aby upewnić się, że wartość jest przekazywana do POST formularza, gdy pole wyboru nie jest zaznaczone: asp.net mvc: why is Html.CheckBox generating an additional hidden input
Gdy dodatkowo ukryte pole jest Formularz, moje niestandardowe pole wyboru nie działa. Klikam, ale nie przełącza między stanami. Jeśli usuniemy dodatkowe ukryte pole wyboru, to działa, ale domyślam się, że napotkasz problemy z przesłaniem POST.
Oto ostateczna html:
<div class="kbcheckbox">
<input checked="checked" data-val="true" data-val-required="The Approved field is required." id="UserEdit_IsApproved" name="UserEdit.IsApproved" type="checkbox" value="true">
<input name="UserEdit.IsApproved" type="hidden" value="false">
<label for="UserEdit_IsApproved"></label></div>
</div>
A oto css używam (używa SCSS)
.kbcheckbox {
width: $checkbox_size;
height: $checkbox_size;
position: relative;
input[type="checkbox"]{
visibility: hidden;
}
label {
cursor: pointer;
position: absolute;
width: $checkbox_size;
height: $checkbox_size;
top: 0;
left: 0;
border-radius: $control_corner_radius;
border: 1px solid $control_border_color;
/*@include box-shadow(1px, 1px, 1px, 0, $control_border_color, inset);*/
/*@include box-shadow(0px, 1px, 0px, $control_background);*/
background: white;
}
label:after {
opacity: 0;
content: '';
position: absolute;
width: $checkbox_size * 0.62;
height: $checkbox_size * 0.25;
background: transparent;
top: $checkbox_size * 0.2;
left: $checkbox_size * 0.1;
border: 3px solid black;
border-top: none;
border-right: none;
@include transform(rotate(-45deg));
}
label:hover {
background: darken($control_background, 10%);
}
input[type=checkbox]:checked + label:after {
opacity: 1;
}
}
pomysłów?
+1 Mam podobny problem z motywem z WrapBootstrap. Jedyną ideą, jaką miałem, było stworzenie funkcji JS, aby przenieść ukryte dane wejściowe do bardziej odpowiedniej lokalizacji. Czy kiedykolwiek zdołałeś rozwiązać ten problem w inny sposób? – philreed
Właśnie zadałem podobne pytanie tutaj. Nie widziałem tego http://stackoverflow.com/questions/18368500/default-css3-checkbox-template-in-mvc – Jammer