2016-03-08 155 views
1

在下面的代码中,我试图检查文件是否从超链接中选择。当第一次选择文件时var fileName = $('#' + field_id).val();null,但是当第二次选择文件时,会显示文件路径。这里有什么问题?jquery文件选择超链接

<input type="file" id="new_rule_upload" name="new_rule_upload" style="visibility: hidden; width: 1px; height: 1px" /> 
<a href="" onclick="document.getElementById('new_rule_upload').click(); upload_file('new_rule_upload'); return false">Upload</a> 
function upload_file(field_id) { 
    var fileName = $('#' + field_id).val(); 
    alert(fileName); 
    if (fileName != '') { 
     alert('selected') 
    } else { 
     alert('not selected'); 
    } 
} 
+1

别把本地JS和jQuery。此外,您可能需要使用'event.preventDefault()'来停止默认的''标记行为 – Raptor

回答

0

我建议安装自己输入的变化事件就可以立即通知。

$(function() { 
    $("#new_rule_upload").change(function(){ 
    var fileName = $(this).val(); 

    // Do something 
    }); 
}); 
+0

'$(“new_rule_upload”)'我猜ID /类选择器丢失了。 – Jai

+0

固定。谢谢.. –

0

使用jQuery

$(function() { 
    $("#a_id").click(function() { 
     var fileName = $("#new_rule_upload").val(); 
     alert(fileName); 
     if (fileName != '') { 
      alert('selected') 
     } else { 
      alert('not selected'); 
     } 
    }); 
});