PDA

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 رو میده.

موفق باشید.