I guess i still need some help...
The code works fine, however the issue is it sticks to the value of country in the first row, so even if in the second row the country is changed, it still formats as per the first row value...
The complete code is attached:
$(document).ready(function() {
//Initial binding
RebindRowAction();
//After row is added
$(".NewUser").on("change", function () {
RebindRowAction();
});
//Function that actually does the magic of concatenating two fields within the same row
function RebindRowAction(){
$('.short').change(function(){
var x = $(this).parents("tr").find("input[id^=Field12]").val();
var y = $(this).parents("tr").find("input[id^=Field11]").val();
var z = (x+" "+ y);
$(this).parents("tr").find("input[id^=Field10]").val(z);
//Email Field 15
var x = $(this).parents("tr").find("input[id^=Field88]").val();
var y = $(this).parents("tr").find("input[id^=Field89]").val();
var mail = (x+"."+ y+'@test.com');
var mail = mail.replace(/\s+/g, '');
$(this).parents("tr").find("input[id^=Field15]").val(mail);
//Capitalize First Name
var text = $(this).parents("tr").find("input[id^=Field12]").val();
var text = text.replace(/^.|\s.|-./g, function (txt) { return txt.toUpperCase(); });
$(this).parents("tr").find("input[id^=Field12]").val(text);
//Capitalize Last Name
var text = $(this).parents("tr").find("input[id^=Field11]").val();
var text = text.replace(/^.|\s.|-./g, function (txt) { return txt.toUpperCase(); });
$(this).parents("tr").find("input[id^=Field11]").val(text)
});
//Mobile Format for Swiss & Germany
$("input[id^=Field14]").on('change blur',function(i, text) {
if ($('[id^=Field82]').val() == "Switzerland") {
var text = $(this).parents("tr").find("input[id^=Field14]").val();
var text = text.replace(/(\d{2})(\d{3})(\d{2})(\d{2})/, "+41" + " "+ "$1 $2 $3 $4");
$(this).parents("tr").find("input[id^=Field14]").val(text);
}
else if ($('[id^=Field82]').val() == "Germany") {
var text = $(this).parents("tr").find("input[id^=Field14]").val();
var text = text.replace(/(\d{3})(\d{2})(\d{2})(\d{3})/, "+49" + " "+ "$1 $2 $3 $4");
$(this).parents("tr").find("input[id^=Field14]").val(text);
}
});
//Office Phone Format for Swiss & Germany
$("input[id^=Field63]").on('change blur',function(i, text) {
if ($('[id^=Field82]').val() == "Switzerland") {
var text = $(this).parents("tr").find("input[id^=Field63]").val();
var text = text.replace(/(\d{2})(\d{3})(\d{2})(\d{2})/, "+41" + " "+ "$1 $2 $3 $4");
$(this).parents("tr").find("input[id^=Field63]").val(text);
}
else if ($('[id^=Field82]').val() == "Germany") {
var text = $(this).parents("tr").find("input[id^=Field63]").val();
var text = text.replace(/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/, "+49" + " "+ "$1 $2 $3 $4 $5");
$(this).parents("tr").find("input[id^=Field63]").val(text);
}
});
//Select Zip, Country, Language, Street based on City selection
$("select[id^=Field85]").on('change blur', function(){
if ($(this).val() == "Lugano") {
$(this).parents("tr").find("[id^=Field84]").val("3011");
$(this).parents("tr").find("[id^=Field82]").val("Switzerland");
}
else if ($(this).val() == "Bern") {
$(this).parents("tr").find("[id^=Field84]").val("6900");
$(this).parents("tr").find("[id^=Field82]").val("Switzerland");
}
else if ($(this).val() == "Zürich"){
$(this).parents("tr").find("[id^=Field84]").val("8001");
$(this).parents("tr").find("[id^=Field82]").val("Switzerland");
}
else if ($(this).val() == "Frankfurt"){
$(this).parents("tr").find("[id^=Field84]").val("60311");
$(this).parents("tr").find("[id^=Field82]").val("Germany");
}
else if ($(this).val() == "Genève"){
$(this).parents("tr").find("[id^=Field84]").val("1204");
$(this).parents("tr").find("[id^=Field82]").val("Switzerland");
}
else if($(this).val() == "Berlin"){
$(this).parents("tr").find("[id^=Field84]").val("10178");
$(this).parents("tr").find("[id^=Field82]").val("Germany");
}
});
//RebindRowAction ends here
}
});