Я думаю, что первую проблему можно решить, введя пробел после 'a' перед '#'. Я предполагаю, что «picUpload» является идентификатором элемента привязки. В этом случае вам не нужно использовать «а» вообще. Просто используйте «#picUpload» для привязки события click к элементу. Я предпочитаю второй метод, где вы используете только #id для получения объекта jQuery этого элемента.
$("#picUpload").bind('click', function() {
$(":input[type=file]").click();
});
Я также предлагаю вам проверить свою форму на наличие любого другого элемента, имеющего тот же идентификатор, что и элемент 'picUpload'. В этом случае все может пойти не так.
Чтобы начать автоматическую загрузку файла после выбора файла, используйте событие ввода «change»: элемент файла.
$('#fileUpload').change(function() {
alert('changed');
//call your ajax function for uploading file
});
Чтобы скрипт работал, форма должна быть такой, как указано ниже
<form>
<a id='picUpload' href='#'>Upload picture</a>
<input id='fileUpload' type="file"/>
</form>
Скрипка здесь: http://jsfiddle.net/deepumohanp/vvVWt/