Because JQuery is loaded in Forms you could do the following instead
var sna = $("#Field47").val();
Just make sure that's the correct field identifier.
However, a problem with the evaluate function may be that the sna variable doesn't exist within the scope of that function.
What exactly is returned as undefined? That will help determine the actual problem.
Another option which I typically favor is to add custom classes to my fields. As an example, I would add something like "snaField" to the CSS class attribute in the field configuration, then reference it with the following JQuery.
var sna = $('.snaField input').val();
What I like about this approach is that you can make the classes descriptive so it is easier to understand the code, and it removes the need to track down the Field# ids for all of your form elements.
The only change you need to make is to replace "input" with the appropriate element type if it is a different field type (select for dropdowns, textarea for multi-line, etc.).