Значение через
$('input[name=\'' + product_id + '\']').val()
получается, а вот изменение и подстановка не нового значения в value не выполняется.
function isright(product_id) {
var ns = $('input[name=\'' + product_id + '\']').val().value.replace(/\D/g,'')||0;
if (ns>50) ns=$('input[name=\'' + product_id + '\']').val(50);
if (ns<10) ns=$('input[name=\'' + product_id + '\']').val(10);
$('input[name=\'' + product_id + '\']').val() = ns
}