jquery для intlTelInput не может добавить прослушиватель событий - PullRequest
0 голосов
/ 31 января 2019

пытается сделать что-то похожее на выпадающий список слушателей кода страны, но с текстовым полем, которое должно заполняться кодом страны (чтобы впоследствии я мог использовать значение в коде PHP).

Добавление прослушивателя событий не работает:

<script>

$(document).ready(function(){

    $("#mobile").intlTelInput({
			onlyCountries: ["au","ca","us","nz","gb"],
    	utilsScript: "<?php echo get_template_directory_uri(); ?>/intl-tel-input/build/js/utils.js",
    	geoIpLookup: function(callback) {
		  	$.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) {
		    	var countryCode = (resp && resp.country) ? resp.country : "";
		    	callback(countryCode);
		  	});
		},
    	initialCountry: "auto"
    }).addEventListener('countrychange', function() {
			$("#country_code").value = "changed"
		});;

    $('#verify').attr('disabled','disabled');
    $("#mobile").on('input', function() {
    	if ($("#mobile").intlTelInput("isValidNumber")) {
			$('#verify').removeAttr('disabled');
			$("#country_code").innerHTML = "changed"
    	} else {
    		$('#verify').attr('disabled','disabled');
    	}

    });

    $("#register-form").submit(function() {
		$("#mobile").val($("#mobile").intlTelInput("getNumber"));

	});
});
</script>

1 Ответ

0 голосов
/ 19 августа 2019

Возможно, прошло несколько месяцев с тех пор, как вы задавали этот вопрос, ниже приведено решение.

Вы неправильно поняли addEventListener.Это может быть функцией любого другого javascript фреймворка.Но не jQuery's

Используйте приведенный ниже код в качестве сценария после инициализации.Вы можете делать то, что вы хотите, с помощью countryData.dialCode, который дает код страны.

jQuery("#mobile").on('countrychange', function(e, countryData){
    console.log(countryData.dialCode);
})

Ниже приведен пример countryData, который возвращает intlTelInput.

{areaCodes: null, dialCode: "44", iso2: "gb", name: "United Kingdom", priority: 0}
...