我的問題很簡單:jQuery和輸入[類型=「文件」]問題
我想保存我選擇使用文件輸入,並使用jQuery我希望把他們的名字別的地方瞬間的文件名沒有刷新頁面。
也許我會用文件名替換一個簡單的文本。我會怎麼做?
例子:
在開始正文: 的Hello World
選擇文件後,這個 「Hello World」 將與 「my_filename.gif」 所取代。
想法?
我的問題很簡單:jQuery和輸入[類型=「文件」]問題
我想保存我選擇使用文件輸入,並使用jQuery我希望把他們的名字別的地方瞬間的文件名沒有刷新頁面。
也許我會用文件名替換一個簡單的文本。我會怎麼做?
例子:
在開始正文: 的Hello World
選擇文件後,這個 「Hello World」 將與 「my_filename.gif」 所取代。
想法?
這裏有一個潛在的解決方案:
<input type="file" onchange="$('#helloWorld').val($(this).val());"/>
<input id="helloWorld" value="Hello World"/>
你可以檢查出來here
編輯:
修改它,以便將該值設置爲 「Hello World」 開始,而不是innerHTML之中。
可以在數據功能保存對元素:
function getFileNameFromPath(path) {
var ary = path.split("\\");
return ary[ary.length - 1];
}
$(function() {
$('input[type=file]').change(function() {
$(this).data(
'fileName',
getFileNameFromPath($(this).val())
);
alert($(this).data('fileName'));
});
});
'' ...? – davin 2011-05-24 21:47:38
在標記中混合javascript邏輯是不好的做法,應該避免 – XGreen 2011-05-24 21:53:59
@XGreen一般來說,我同意你的看法。不過,我堅信,將JavaScript事件添加到標記中的元素是可以的。這使得事件處理程序在查看HTML時很清晰,並且如果它們被正確命名,也可以在JavaScript文件中進行命名。如果我正在做更復雜的事情,我會在JavaScript文件中創建一個onchange函數並引用它。但是,我認爲在這種情況下增加了不必要的複雜性,並使輸入之間的聯繫更加模糊。 – Briguy37 2011-05-25 13:31:17