在我的 html 表单中,我有 4 个文件输入字段。
<input type="file" id="one" name="Title_image1" onchange="check_extension(one)"/>
<input type="file" id="one2" name="Title_image2" onchange="check_extension(one3)"/>
<input type="file" id="one3" name="Title_image3" onchange="check_extension(one4)"/>
<input type="file" id="one4" name="Title_image4" onchange="check_extension(one5)"/>
我想使用 JavaScript 检查输入的文件扩展名。
我的功能
function check_extension($field_id)
{
var allowed = {'jpg': 1, 'png': 1};
var fileinput = document.getElementById("$field_id");
var y = fileinput.value.split(".");
var ext = y[(y.length) - 1];
ext = ext.toLowerCase();
if (allowed[ext]) {
document.chooseF.confirm.disabled = false;
return true;
} else {
alert("This is an unsupported file type. Supported files are: jpg,png");
document.chooseF.confirm.disabled = true;
return false;
}
}
我对所有以 fieldid 作为参数的输入字段使用相同的函数,但它不起作用。
最佳答案
onchange="check_extension(one)"
这里
one
是id为“one”的节点,one
不是字符串“one”
document.getElementById("$field_id");
即使
$field_id
是 ID"one"
,"$field_id"
也是不同的字符串
因此getElementById("$field_id")
将为您提供 id 为"$field_id"
的节点,而不是 id 为"one"
的节点。
修复
onchange="check_extension('one')"
和
document.getElementById($field_id)
此外,我不鼓励使用前导 $
命名字符串变量
关于Javascript函数参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25714173/