contacto.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. $(document).on( "click", "#agrega-contacto", function(event){
  2. var cloned = $("#contacto_list >.contacto:first-child").clone(true).appendTo("#contacto_list");
  3. cloned.removeClass("d-none");
  4. cloned.find(".form-control").attr("readonly", false).attr("disabled", false).attr("required", true);
  5. cloned.find("input").val("");
  6. cloned.find(":first-child").focus();
  7. //cloned.find('select').get(0).selectedIndex = 0;
  8. console.log(cloned.length);
  9. var tipoObj = cloned.find(".tipo");
  10. var selectedOpts = tipoObj.find('option:selected');
  11. if(selectedOpts.data("subtipo") > 0 ){
  12. cloned.find('.subtipo').parent().removeClass("d-none")
  13. loadSubtipo(tipoObj);
  14. }else{
  15. cloned.find('.subtipo').parent().addClass("d-none");
  16. cloned.find('.subtipo').append($("<option selected='selected' value='0'></option>"));
  17. }
  18. //hideBorraContacto();
  19. });
  20. $(".borra-contacto").click(function(){//quita contacto
  21. $(this).parents(".contacto").remove();
  22. });
  23. $(".tipo").change(function(){
  24. var selectedOpts = $(this).find('option:selected');
  25. if(selectedOpts.data("subtipo") > 0 ){
  26. $(this).parents('.contacto').find('.subtipo').parent().removeClass("d-none")
  27. //$(this).parents('.contacto').find('.subtipo').attr("readonly", false).attr("disabled", false).attr("required", true);
  28. loadSubtipo($(this));
  29. }else{
  30. $(this).parents('.contacto').find('.subtipo').parent().addClass("d-none")
  31. $(this).parents('.contacto').find('.subtipo').find('option').remove();//borra
  32. $(this).parents('.contacto').find('.subtipo').append($("<option selected='selected' value='0'></option>"));
  33. }
  34. });
  35. function loadSubtipo(tipoObj){
  36. var idTipo = tipoObj.val();
  37. $.ajax({
  38. url: './action/subtipocontacto_select.php',
  39. type: 'POST',
  40. dataType: 'json',
  41. data: { id: idTipo },
  42. success: function(result) {
  43. if(result["error"]!= "" && result["error"] !== undefined){
  44. $("#errorBox").collapse('show');
  45. $("#errorBox_text").html(result["error"]);
  46. $('#messageBox')[0].scrollIntoView({ block: "end" });
  47. }else{
  48. var subtipoObj = tipoObj.parents('.contacto').find('.subtipo');
  49. if(result["subtipo"]!= "" && result["subtipo"] !== undefined && result["subtipo"].length > 0){
  50. subtipoObj.find('option').remove();//borra
  51. for(var i=0; i<result["subtipo"].length; i++){
  52. subtipoObj.append($("<option></option>"));
  53. subtipoObj.find("option:last").attr("value", result["subtipo"][i]["valor"])
  54. .text(result["subtipo"][i]["desc"]);
  55. if(result["subtipo"][i]["seleccionado"] == 1){
  56. subtipoObj.find("option:last").attr("selected", true);
  57. }
  58. }
  59. }else{
  60. $("#errorBox").collapse('show');
  61. $("#errorBox_text").html("No se encontraron subtipos de contacto");
  62. $('#messageBox')[0].scrollIntoView({ block: "end" });
  63. }
  64. }
  65. },
  66. error: function(jqXHR, textStatus, errorThrown ){
  67. $("#errorBox").collapse('show');
  68. $("#errorBox_text").html(errorThrown);
  69. $('#messageBox')[0].scrollIntoView({ block: "end" });
  70. }
  71. });//ajax
  72. }