In your code, jQuery just looks for the first instance of an input with name q12_3, which in this case has a value of 1. You want an input with name q12_3 that is :checked.
$("#submit").click(() => {
const val = $('input[name=q12_3]:checked').val();
alert(val);
});
Sales Promotion
1
2
3
4
5
Note that the above code is not the same as using .is(":checked"). jQuery's is() function returns a boolean (true or false) and not (an) element(s).
Because this answer keeps getting a lot of attention, I'll also include a vanilla JavaScript snippet.
document.querySelector("#submit").addEventListener("click", () => {
const val = document.querySelector("input[name=q12_3]:checked").value;
alert(val);
});