Это просто способ, которым литералы объектов работают в JavaScript, вы не можете использовать переменную для ключа, по крайней мере, с этим обозначением.
Вы должны построить объект, используя скобочную запись , чтобы иметь динамический ключ, например:
var obj = { del: "John" };
obj[$(this).val()] = "";
$.post("index.php", obj);
Поскольку вы пропускаете пустую строку, почему бы не перевернуть ее? Используйте известный ключ, например:
$.post("index.php", { del: "John", id: $(this).val() });