-1

I am able to autofill state,city and area based on 6 digit zipcode.The issue comes when i want to check for validity of zipcode starting from 5th digit.I know it will show invalid zip code error as i am comparing the value against database value..Here goes the code i have used. Is there a way i can hide error of invalid zip code after 5th digit while still continuing to validate after 5th digit of zipcode?

<script>
    require([
        'jquery'
    ],function($){
        $(document).ready(function(){
            $('#seller_zipcode').keyup(function() {
                pincode = $('#seller_zipcode').val();
                pincode1 = $('#seller_zipcode').slice(0,-1);
                //pincode1 = pincode.slice(0,-1);
                //console.log(pincode1);
                if(pincode.length == 6 || pincode1.length == 5){
                    $.ajax({
                        type: 'POST'
                        ,url: "<?php echo $block->getUrl('marketplace/zipcode/zipcode');?>"
                        ,data: {pincode : pincode}
                        ,success: function(result){
                            var finalresult = $.parseJSON(result);
                            console.log(finalresult);
                            if(finalresult.state != null){
                                $('#state').val(finalresult.state);
                                $('#seller_district').val(finalresult.district);
                                $('#seller_taluka').val(finalresult.area);
                                $('#zip_error').removeClass('mage-error');
                                $('#zip_error').removeAttr('generated');
                                $('#zip_error').html("");
                            }
                            else{
                                $('#state').val("");
                                $('#seller_district').val("");
                                $('#seller_taluka').val("");
                                $('#zip_error').removeClass('mage-error');
                                $('#zip_error').addClass('mage-error').html("Zip Code invalid").show();
                                $('#zip_error').attr('generated','true');
                            }
                        }
                    });
                }
            });
user3313626
  • 119
  • 6

1 Answers1

0

Try doing this:

<script>
    require([
        'jquery'
    ],function($){
        $(document).ready(function(){
            $('#seller_zipcode').keyup(function() {

                //Reset the zip error
                $('#zip_error').removeClass('mage-error');
                $('#zip_error').removeAttr('generated');
                $('#zip_error').html("");


                pincode = $('#seller_zipcode').val();
                pincode1 = $('#seller_zipcode').slice(0,-1);
                //pincode1 = pincode.slice(0,-1);
                //console.log(pincode1);
                if(pincode.length == 6 || pincode1.length == 5){
                    $.ajax({
                        type: 'POST'
                        ,url: "<?php echo $block->getUrl('marketplace/zipcode/zipcode');?>"
                        ,data: {pincode : pincode}
                        ,success: function(result){
                            var finalresult = $.parseJSON(result);
                            console.log(finalresult);
                            if(finalresult.state != null){
                                $('#state').val(finalresult.state);
                                $('#seller_district').val(finalresult.district);
                                $('#seller_taluka').val(finalresult.area);
                                $('#zip_error').removeClass('mage-error');
                                $('#zip_error').removeAttr('generated');
                                $('#zip_error').html("");
                            }
                            else{
                                $('#state').val("");
                                $('#seller_district').val("");
                                $('#seller_taluka').val("");
                                $('#zip_error').removeClass('mage-error');
                                $('#zip_error').addClass('mage-error').html("Zip Code invalid").show();
                                $('#zip_error').attr('generated','true');
                            }
                        }
                    });
                }
            });
Vagabond
  • 877
  • 1
  • 10
  • 23
  • Hi,thanks for the help..have tried your suggestion..in addition to that just to know if i update my if condition from if(pincode.length == 6 || pincode1.length == 5) to if(pincode.length == 6 || pincode.length == 5).What changes must be made to your suggestions so that invalid zipcode error doesnt pop up after 5th digit. – user3313626 Jul 25 '17 at 12:18
  • For that I need to know why did you use two variables viz. pincode and pincode1? – Vagabond Jul 25 '17 at 12:45
  • it was just to check if it gets 5 digit number does it stop giving the error or not..i am not sure if pincode1 could have got value of 5 digits after trimming the last digit. – user3313626 Jul 25 '17 at 12:51