Единственное объяснение того, что length
является неопределенным, - это если inputData не является строкой. Вы забыли упомянуть, с каким типом ввода вы работаете, но в любом случае приведение к строке должно решить проблему:
function checkInputData() {
$('.mainSearchSubmit').live('click', function () {
var inputData = $(this).parent().children().eq(0).val();
inputData = String(inputData); // Cast to string
console.log(inputData.length);
//this returns undefined
console.log(inputData);
//and this returns text from inpu so i know there is data
});
}