用于intlTelInput的jquery无法添加事件监听器

时间:2019-01-31 01:34:55

标签: javascript jquery intl-tel-input

尝试执行类似于国家/地区代码侦听器的操作,但下拉菜单带有一个文本框,该文本框应使用国家/地区代码填充(以便以后可以在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 :(得分:0)

也许,距离您问这个问题已有几个月了,下面是解决方法。

您误解了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}