在我的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作为参数,但它不起作用。
答案 0 :(得分:2)
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)
另外,我不鼓励使用前导$
答案 1 :(得分:0)
改变这个:
<input type="file" id="one" name="Title_image1" onchange="check_extension(one)"/>
像这样:
<input type="file" id="one" name="Title_image1" onchange="check_extension('one')"/>
然后改变这个:
function check_extension($field_id)
{
var allowed = {'jpg': 1, 'png': 1};
var fileinput = document.getElementById("$field_id");
....
像这样:
function check_extension(field_id)
{
var allowed = {'jpg': 1, 'png': 1};
var fileinput = document.getElementById(field_id);
...