Попробуйте поместить document.getElementById
в setTimeout()
Например.
setTimeout(function(){
console.log(document.getElementById('whatever'));
}, 100);
Если это сработает, тогда это просто проблема синхронизации.
Когда вы JSON.stringifyied ваш объект данных, вы преобразовали его в JSON. Но вы забыли установить заголовок запроса Content-Type, и веб-API не знает, отправляете ли вы JSON, XML или что-то еще:
$.ajax({
url: '/api/contactus/newmessage',
type: 'POST',
contentType: 'application/json',
done: submissionSucceeded,
fail: submissionFailed,
data: dataObject
});
Также при создании JSON вы не необходимо обернуть его дополнительным свойством, которое соответствует имени аргумента метода. Следующее должно работать также:
var dataObject = JSON.stringify({
'Email': $('#inpEmail').val(),
'Name': $('#inpName').val(),
'PhoneNumber': $('#inpPhone').val(),
'Message': $('#inpMessage').val()
});