- 08 Mar 2019, 16:12
#81104
Gostaria de fazer uma modificação de um módulo já pronto de Auto completar o Endereço. Ele localiza o endereço, cidade e estado através do cep. O que eu gostaria é o seguinte:
- Se localiza o endereço completo do cliente: adicionar um css "sem-bordas"
- Se não, apresenta os campos para digitação manual de endereço, cidade e estado e o css "com-bordas".
Um bom exemplo do tipo de formulário que eu gostaria está presente no site da TELHANORTE, para vê-lo, basta realizar um compra e ir até o checkout
Abaixo o código original:
Código original por: opencartmasterBR - Obrigado por disponibilizá-lo
- Se localiza o endereço completo do cliente: adicionar um css "sem-bordas"
- Se não, apresenta os campos para digitação manual de endereço, cidade e estado e o css "com-bordas".
Um bom exemplo do tipo de formulário que eu gostaria está presente no site da TELHANORTE, para vê-lo, basta realizar um compra e ir até o checkout
Abaixo o código original:
Código: Selecionar todos
Acredito que seja isto a ser feito:
$(function(){
$('input[name="postcode"]').blur(function(){
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
//$.getScript ("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+cep, function(){
$.getJSON("https://viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados){
if(!("erro" in dados)){
$('input[name="address_1"]').val(dados.logradouro);
$('input[name="address_1"]').parent().parent().fadeIn('slow');
$('input[name="address_2"]').val(dados.bairro);
$('input[name="address_2"]').parent().parent().fadeIn('slow');
$('input[name="city"]').val(unescape(dados.localidade));
$('input[name="city"]').parent().parent().fadeIn('slow');
$('select[name="zone_id"]').parent().parent().fadeIn('slow');
$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(dados.uf), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after(' <i class="fa fa-circle-o-notch fa-spin"></i>');
},
complete: function() {
$('.fa-spin').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').parent().parent().addClass('required');
} else {
$('#postcode-required').parent().parent().removeClass('required');
}
var html = '<option value=""><?php echo $text_select; ?></option>';
if (json['zone'] != '') {
for (i = 0; i < json['zone'].length; i++) {
html += '<option value="' + json['zone'][i]['zone_id'] + '"';
if (json['zone'][i]['zone_id'] == zone_id) {
html += ' selected="selected"';
}
html += '>' + json['zone'][i]['name'] + '</option>';
}
} else {
html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';
}
$('select[name=\'zone_id\']').html(html);
}
});
});
}
});
});
});
Código: Selecionar todos
Mas não deu certo. Alguma dica? Desde já agradeço success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').parent().parent().addClass('required');
} else {
$('#postcode-required').parent().parent().removeClass('required');
}
if(json['address_1'] == '0'){//mycode
$('#input-address-1').addClass('sem-bordas');
}else{
$('#input-address-1').removeClass('sem-bordas');
}//end mycode
Código original por: opencartmasterBR - Obrigado por disponibilizá-lo