multi selection dropdown – with or without checkbox

I am working on a the design system of a large system for users that use it on a daily basis, and I want to define the multi select dropdown. on one hand you can know in advance that you have multi select if you have the checkbox, on the other hand the design is cleaner without them and the user will figure it out after a few uses since he will use it every day

enter image description here

Toggle vs checkbox?

Currently the designer I work with and I are exploring the use of toggle buttons and checkboxes. In his opinion we can use toggle switches for multi-selection, however I believe checkmarks are more appropriate and toggles serve the purpose of enabling or switching something on without further action needed. For example, if you are selecting attributes to place inside a group, are there scenarios where you have seen the use of toggle?

Feel free to share examples from other apps, or justifications. Trying to understand this better. Thanks.

How do I remove a blank checkbox option for a multiple choice column?

How do I remove a blank checkbox option for a multiple choice column type that allows multiple items to be selected? I am using SP Online. I created a list, with a multiple choice column type, with 3 options in a dropdown list. I also checked the box to allow Users to select multiple items in the dropdown list.

When editing the list, and clicking in that column, Users get my 3 options PLUS a BONUS (LOL) checkbox that is blank. How do I remove this blank check box option? I did not enter anything in the choices that would provide a blank check box.

I am seeing this issue in IE 11 and Chrome. Blank choice box showing up in a answer options for a multiple choice question type

Why is the visual behavior for a WPF checkbox reversed when checking/unchecking?

The WPF (Windows Presentation Foundation) checkbox control has opposite visual behaviors for when it is checked and unchecked.

That is, when the mouse button is pressed, the check mark fades into view and stays when the mouse button is released. If pressed again, the check mark stays until the mouse button is released (at which point it then fades away).

Checking – Mouse Down
Checking (Mouse Down)

Checking – Mouse Up
Checking (Mouse Up)

Unchecking – Mouse Down
Unchecking (Mouse Down)

Unchecking – Mouse Up
Unchecking (Mouse Up)

This behavior reminds me how a mechanical toggle button works. The button is pushed in and clicks into place. When pushed again, it stays in place until you let it spring back out.

Is there a practical UX lesson to be learned here from this behavior?

Do these subtle visual cues add any value to the user’s experience?

Error al enviar el contenido de un checkbox

Hola estoy haciendo un programa usando xammp (php, mysqil) de punto de venta para mi tienda, pero eh tenido un problema, recientemente agregue al formulario una opción con un checkbox para descartar las compras que ya no desee un cliente pero esta al seleccionar digamos: Producto A Producto B Producto C

si deseo descartar el [b] el a si es tomando en cuenta pero el resto es ignorado este es el codigo de el formulario que lo ordenó por medio de una tabla:

$  ("#add").click(function(){                 $  ("#mensaje").html("");                 var tds=$  ("#tabla tbody tr:first td").length;                 var trs=$  ("#tabla tbody tr").length;                 var nuevaFila="<tr class='animated fadeInDown'>";                 nuevaFila+='<td><input type="checkbox" id="descartes'+(trs)+'" name="descarta[]" value="1"><label for="descartes'+(trs)+'">Descartar</label></td>';                 nuevaFila+='<td><input type="hidden" name="cprodu[]" id="cpro'+(trs)+'" /><input type="hidden" name="idProd[]" id="idp'+(trs)+'" /><input type="text" placeholder="Codigo" name="codProd[]" id="cod'+(trs)+'" disabled /></td>';                 nuevaFila+='<td><input type="text" class="typeahead tt-query" placeholder="Producto" name="desc[]" id="d'+(trs)+'" onchange="getInventario()" required/></td>';                 nuevaFila+='<td><input type="text" placeholder="Cantidad" class="cantidad" name="cantidad[]" id="c'+(trs)+'" autocomplete="off" onchange="getCantidad()" style="width: 75px;" required/></td>';                 nuevaFila+='<td><input type="text" placeholder="Precio" name="" id="p'+(trs)+'" autocomplete="off" disabled="true" style="width: 150px;" />Bs</td>';                 nuevaFila+='<td><input type="text" placeholder="Total duplicado" name="" id="t'+(trs)+'" autocomplete="off" disabled="true" style="width: 150px;" />Bs</td>';                 nuevaFila+="</tr>";                 $  ("#tabla").append(nuevaFila);                 $  ('input.typeahead').typeahead({                     name: 'typeahead',                     remote:'core/searchinv.php?key=%QUERY',                     limit : 10                 });                   //otro detallito               }); 

y en php recibe por ajax:

$  respuesta = new stdClass();  if ($  _POST) {  $  fecha = date('d/m/Y'); $  hora = date('H:i:s', time()); $  id_user     = $  _SESSION["iduser"];   $  order_id=sha1($  fecha.$  hora);   $  orderItemStatus = false;  for($  x = 0; $  x < count($  _POST['idProd']); $  x++) {        $  updateProductQuantitySql = "SELECT inventario.cantidad FROM inventario WHERE inventario.id = ".$  _POST['idProd'][$  x]."";     $  updateProductQuantityData = $  connect->query($  updateProductQuantitySql);     $  checkbox = isset($  _POST['descarta'][$  x]) ? $  _POST['descarta'][$  x] : "0";       while ($  updateProductQuantityResult = $  updateProductQuantityData->fetch_row()) {          if($  checkbox=="1"){         $  updateQuantity[$  x] = $  updateProductQuantityResult[0] - $  _POST['cantidad'][$  x];                                      // update inventario table             $  updateProductTable = "UPDATE inventario SET cantidad = '".$  updateQuantity[$  x]."' WHERE id = ".$  _POST['idProd'][$  x]."";             $  connect->query($  updateProductTable);              // add into order_item             $  orderItemSql = "INSERT INTO history_orders (order_id, cod_producto, cantidad, fecha, hora, vendedor_id)              VALUES ('$  order_id', '".$  _POST['cprodu'][$  x]."', '".$  _POST['cantidad'][$  x]."', '$  fecha', '$  hora','$  id_user')";              $  connect->query($  orderItemSql);                   if($  x == count($  _POST['idProd'])) {                 $  orderItemStatus = true;             }             }            } // while  } // /for quantity // while   $  respuesta->mensaje = '<div style="color:lime;" class="animated flash icon fa-check"> Listo, compra realizada con exito </div>';  $  connect->close();  }else{ $  respuesta->mensaje = '<div style="color:red;" class="animated flash icon fa-warning"> Error, Campos invalidos o vacios </div>'; } echo json_encode( $  respuesta );