ccc

JQuery: Formularios

Resetear todos los campos de un formulario:
$("#formLSG")[0].reset();

// ************** VALIDAR UN FORMULARIO *****************
<!DOCTYPE html>
<html>
<head>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
 <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js"></script>
</head>
<body>
<form method="post" action="procesar.php" id="FormLSG">
<p>Email <input type="text" class="required" name="my_email"></p>
<p>Nombre <input type="text" class="required" name="my_name"></p>
<input type="submit" value="Enviar">
</form>
<script type="text/javascript">
 $(function(){
$('#FormLSG').validate({
rules: {
my_email : {
required : true,
email : true
},
my_name : {
required : true,
minlength : 3,
maxlength : 9
}
},
messages: {
my_email: {
required : "Debe ingresar el e-mail.",
email : "Debe ingresar un e-mail válido."
},
my_name: {
required : "Debe ingresar un nombre.",
minlength : "El nombre debe tener un minimo de 3 caracteres.",
maxlength : "el nombre debe tener un máximo de 9 caracteres."
}
}
});
 });
</script>
</body>
</html>
// ************** FIN VALIDAR UN FORMULARIO *****************

Enviar automáticamente un formulario sin tener que pulsar un botón:
$(function() {
$("#miFormulario").submit();
});

// **************  TEXTAREA ******************
Evitar que en un textarea se escriban determinados caracteres
$('.textareaLSG').keydown(function(e) {
        console.log(e.keyCode);
        retorno = true;
        if (e.keyCode == 190)  // dos puntos
            retorno = false;
        if (e.keyCode == 13)  // intro
            retorno = false;
        if (e.keyCode == 226)  // >
            retorno = false;
        return retorno;
});

// **************  COMBOS ******************
Obtener el seleccionado
$("#mi_combo").change(function(){
    valor = $("#mi_combo option:selected").val();
    texto = $("#mi_combo option:selected").html();
    Otra forma: jQuery('#combo_formacion option:selected').text();
    $('#comboMedicos2 option:selected').text();
    $('#comboMedicos2 option:selected').val();
});

Vaciar el combo
$("#mi_combo").empty();
$('select option').remove(); // otra manera de hacerlo

Seleccionar una opción del combo
$("#mi_combo option[value="+ valor +"]").attr("selected", true);
Mucho más fácil es hacerlo así:
$("#mi_combo").val("-1"); // selecciona aquel que tiene el valor -1

seleccionar una opción del combo por un texto concreto
$("#mi_combo option").each(function() {
  if($(this).text() == texto_buscar) {
    $(this).attr('selected', 'selected');           
  }                       
});

Obtener la posición en el combo del valor seleccionado
id = $("#mi_combo")[0].selectedIndex;

Marcar todos los combos hermanos de una web con la opción del combo seleccionado
$("#comboDestinos").change(function(event) {
   $(this).siblings('select').find('option:eq('+$(this)[0].selectedIndex+')').prop('selected', true);
 });


seleccionar la primera posición del combo
$("#mi_combo")[0].selectedIndex = 0;


// ******************** RADIO BUTTON ****************
Obtener el valor del radio que esté marcado:
alert($('input:radio[name=edad]:checked').val());

Detectar si hay algún radio marcado:
if($('input:radio[name=id_programa]').is(':checked')) {
   alert("Marcado, el valor marcado es: "+$('input:radio[name=id_programa]:checked').val()); }
else {
   alert("No Marcado");
}

Chequear automáticamente todos los radios que  haya:
$("input[type=radio]").each(
 function(){
       $(this).attr("checked","checked");
 }
);


checkeado = false;
if ($("#uno").is(':checked'))
        checkeado = true;
      
if ($("#dos").is(':checked'))
        checkeado = true;

$(".esRbTipoEmpresa[value='21']").prop("checked", true);
$(".esRbTipoEmpresa[id_user='80']").prop("checked", true);

Obtener el checkbox que esté marcado:
<input class="rbLSG" name="rbLSG" type="radio" value="1" />
<input class="rbLSG" name="rbLSG" type="radio" value="2" />
<input class="rbLSG" name="rbLSG" type="radio" value="3" />
<input class="rbLSG" name="rbLSG" type="radio" value="4" />
 ...

resp = $(".ulRadio").find(".rbLSG:checked").val();


Si queremos que, aparte de que quede checked, el radiobutton ejecute el evento del click sobre él será:
$('input:radio[name="rb_tipo_empresa"][value="2"]').prop('checked', true).trigger("click");

// ****************** CHECKBOX ***********************
if($('#cbxPolPriv').prop('checked'))
    alert("Está marcado");
else
    alert("No está marcado");

$("#checkbox_comprobar").click(function() {
        if($("#checkbox").is(':checked')) {  ... }

$("#checkbox_activar").click(function() {
        $("#checkbox").prop('checked', 'checked');
        $("#checkbox").prop('checked', false);
 });

$("input:checkbox").prop('checked', true);
$("input[type=checkbox]").prop('checked', true);

Chequear solo aquel checkbox que cumpla una condición concreta:
$('.chek_companeros[value='+id_usuario+']').click();

Contar cuántos de los checkbox están marcados:
cont = $('.cbxMsj:checked').size(); // por clase
cont = $('input:checkbox:checked').size(); // por tipo

Recorrer todos los checkbox marcados
$('.cbxNuevo:checked').each(function(){
            alert($(this).val());
  });

Que al marcar un checkbox se desmarque los otros (que sean excluyentes):
$('input[type="checkbox"]').on('change', function() {
$('input[type="checkbox"]').not(this).prop('checked', false);
});

// ********************* FILE *****************
Obtener todos los datos de un campo FILE mediante JS
var icono = $('#icono').prop('files')[0];
console.log(icono.size);
console.log(icono.name);
console.log(icono.lastModifiedDate);
console.log(icono.type);

console.log("FICHERO:"+$('input[type=file]').val());
Para subir un fichero mediante AJAX:
var file_data = $('.imageupload').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);

$.ajax({
       url: $(".formuploadimage").attr("action"),
       type: "POST",
       data: form_data,
       cache: false,
       contentType: false,
       processData: false,
       success: function(result){
                alert(result)
       }
});

Para cambiar el tamaño de subida o el número de ficheros permitidos modificar en el PHP.INI:
post_max_size = 16M
max_file_uploads = 20

No hay comentarios:

Publicar un comentario