I tried
$(\":input:not(input[type=button],input[type=submit],button):visible:first\")
but it doesn\'t find anything.
What is my mis
Why not just target the ones you want (demo)?
$('form').find('input[type=text],textarea,select').filter(':visible:first');
Edit
Or use jQuery :input selector to filter form descendants.
$('form').find('*').filter(':input:visible:first');