View Full Version : خواندن ایندکس آرایه
funpatogh
جمعه 30 مهر 1389, 23:48 عصر
سلام
یک input دارم برای فایل هست
<input type="file" name="image[4]">
چه طوری به این 4 میتونم دسترسی داشته باشم
mehdi.mousavi
یک شنبه 02 آبان 1389, 17:36 عصر
سلام یک input دارم برای فایل هست
<input type="file" name="image[4]">
چه طوری به این 4 میتونم دسترسی داشته باشم
سلام.
می تونید به این شکل عمل کنید:
function onLoad() {
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].getAttribute('type') == 'file') {
var name = inputs[i].getAttribute('name');
if (name && name.length) {
var match = /\[(\d+)\]/.exec(name);
if (match && match.length == 2) {
//match[1] === 4
alert(match[1]);
}
}
}
}
}
اینجا ابتدا من کلیه Element هایی که Tag Name اونها input هستش رو انتخاب میکنم، سپس اونهایی رو که Type اشون file هستش رو جدا میکنم، و در نهایت، با یک RegEx به اندیس مورد نظر میرسم.
موفق باشید.
funpatogh
سه شنبه 04 آبان 1389, 22:24 عصر
اگر تعداد input ها زیاد بود چه طوری به آخرین ایندکس آرایه دسترسی داشته باشم
mehdi.mousavi
سه شنبه 04 آبان 1389, 23:30 عصر
اگر تعداد input ها زیاد بود چه طوری به آخرین ایندکس آرایه دسترسی داشته باشم
سلام.
می تونید بدین شکل عمل کنید:
function onLoad() {
var lastFileInput = null, inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].getAttribute('type') == 'file') {
lastFileInput = inputs[i];
}
}
if(lastFileInput) {
var name = lastFileInput.getAttribute('name');
if (name && name.length) {
var match = /\[(\d+)\]/.exec(name);
if (match && match.length == 2) {
//match[1] === 4
alert(match[1]);
}
}
}
}
اینجا تو حلقه اول، من input:file آخری رو نگه میدارم، بقیه اش هم مثل کد قبلی هستش. در نتیجه اگر مثلا 3 تا input:file داشته باشم:
<input type="file" name="image[4]"/>
<input type="file" name="image[5]"/>
<input type="file" name="image[6]"/>
کد فوق به شما عدد 6 رو میده.
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.