jQuery Snippet:
function main_call(){
jQuery("#user_registration").on('submit',function(event) {
load_product_serial();
});
jQuery("#reg_submit").on('blur',function(event) {
load_product_serial();
});
}
function load_product_serial(){
var result = [];
var prod_serial = jQuery('#reg-product-serial').val(); //fetch input value
jQuery.ajax({
type: "GET",
url: ajaxurl,
async: false,
dataType : "JSON",
contentType: 'application/json; charset=utf-8',
data : {action: "get_product_serial"},
//cache: false,
success: function(data){
result = data;
if( jQuery.inArray( prod_serial, result ) < 0 ){
jQuery( "#invalid_dialog" ).dialog({
width: 350,
modal: true,
resizable: false,
dialogClass: 'no-close success-dialog',
buttons: {
Ok: function() {
jQuery( this ).dialog( "close" );
}
}
});
jQuery( "button.ui-dialog-titlebar-close" ).hide();//hide close button
event.preventDefault();
return false;
}else{
alert('Success');
//jQuery( "#valid_dialog" ).dialog();
return true;
}
},
error: function() {
alert('Unexpected error occured. Please try again.');
}
});
//});
}
Here I need to call the function when user clicks on submit button event (reg-product-serial
) OR when user changes input value onblur event (reg-product-serial
)
I can bind using .on()
to multiple events but the element here is not same.
$('#element').on('keyup keypress blur change', function() {
...
});
This is not a duplicate as I am not using one common element but two different elements for the same function.