Estoy desarrollando una página html, en la que estoy usando dos botones de radio que dicen A y B (A se marcará como predeterminado)
solución requerida: cuando un usuario selecciona el botón A
deberían permitirles cargar solo archivos .csv y .txt, si seleccionan otro archivo, debería arrojar un mensaje
Además, si seleccionan el botón de opción 'B', solo deberían permitirles cargar archivos .config
He intentado esto mucho ahora:
<div class="form-group"> <label class="col col-md-2 control-label"><span class="widget-icon"> <i class="fa fa-file txt-color-black"></i>Type of File </label> <div class="col-md-2"> <label class="radio-inline"> <input type="radio" class="selectfileclass" name="file" id="file_a" value="csv,txt" checked/>File_A<br /> </label> <label class="radio-inline"> <input type="radio" class="selectfileclass" name="file" id="config" value="config" />Config<br /> </label> <br> <br> </div> </div> </form> <span class="btn"><input type="file" class="selectfileclass" id="ImportFile" accept=".csv,.txt" data-bind="event: { change: $root.Browse }"/></span> <script> $('.selectfileclass').change(function() { $('#ImportFile').attr("accept", "." + $(this).val()) }) </script>Todavía atascado, donde me estoy perdiendo,
¡cualquier ayuda será apreciada!
Gracias
Cuando coloca un punto antes de "csv,txt" , se convierte en ".csv,txt" que no es una lista separada por comas de especificadores únicos de tipo de archivo .
Quizás la solución más simple es colocar la lista de especificadores de archivos en los valores de atributos de los botones de opción y no procesarlos más al cambiar el valor del atributo de accept de la entrada del archivo.
<input type="radio" class="selectfileclass" name="file" id="file_a" value=".csv,.txt" checked> ... <input type="radio" class="selectfileclass" name="file" id="config" value=".config"> ... ... $('#ImportFile').attr("accept", $(this).val()) Una posible mejora para garantizar que el valor del file del botón de opción cargado coincida con el tipo de archivos seleccionados sería borrar el valor de entrada del archivo cuando se cambian los botones de opción:
$('#ImportFile').val(""); // before setting $('#ImportFile').attr("accept", $(this).val())