alert('eval(tempOpenxQtyStr ) =' + eval(tempOpenxQtyStr));
Поскольку вы помещаете строку, а не объект, внутри tempOpenxQtyStr, она оценивает эту строку и возвращает 0.
alert('eval(tempOpenxQtyStr).value =' + eval(tempOpenxQtyStr).value);
Здесь вы используете метод для переменной, содержащей строку. Это не работает У него нет такого метода, поэтому он возвращает неопределенное значение.
Возможно, вы захотите попробовать сделать eval(tempOpenxQtyStr.value)
вместо eval(tempOpenxQtyStr).value
, так как последний в основном ничего не делает, просто оценивает объект и затем извлекает значение объекта (само значение не оценивается).