Клонируйте входной элемент файла в JavaScript

Это решение кода после того, как результаты получены из Mongo. Использование карты для хранения индекса и затем замены значений.

catDetails := make([]CategoryDetail, 0)
err = sess.DB(mdb).C("category").
    Find(bson.M{
    "_id":       bson.M{"$in": path},
    "is_active": 1,
    "name":      bson.M{"$ne": ""},
    "url.path":  bson.M{"$exists": true, "$ne": ""},
}).
    Select(
    bson.M{
        "is_active": 1,
        "name":      1,
        "url.path":  1,
    }).All(&catDetails)

if err != nil{
    return 
}
categoryOrderMap := make(map[int]int)

for index, v := range catDetails {
    categoryOrderMap[v.Id] = index
}

counter := 0
for i := 0; counter < len(categoryOrderMap); i++ {
    if catId := int(path[i].(float64)); catId > 0 {
        fmt.Println("cat", catId)
        if swapIndex, exists := categoryOrderMap[catId]; exists {
            if counter != swapIndex {
                catDetails[swapIndex], catDetails[counter] = catDetails[counter], catDetails[swapIndex]
                categoryOrderMap[catId] = counter
                categoryOrderMap[catDetails[swapIndex].Id] = swapIndex
            }
            counter++
        }
    }
}
20
задан Anti-Dentite 6 January 2009 в 04:36
поделиться

2 ответа

Редактирование поля формы файла является угрозой безопасности и таким образом отключено на большинстве браузеров, и должен быть отключенным на Firefox. Это не хорошая идея полагаться на эту функцию. Вообразите, был ли кто-то в состоянии, с помощью JavaScript, для изменения поля загрузки скрытого файла на, позволяет, говорят,

c:\Users\Person\Documents\Finances

Или

C:\Users\Person\AppData\Microsoft\Outlook.pst

:)

9
ответ дан 29 November 2019 в 22:35
поделиться

Предположение, что Вам нужна эта функциональность, таким образом, можно клонировать входной элемент и поместить его в скрытую форму, которая затем ОТПРАВЛЯЕТСЯ на скрытый iframe...

element.clone IE () реализация не переносит значение для входного типа = "файл", таким образом, необходимо пойти наоборот:

// Clone the "real" input element
var real = $("#categoryImageFileInput_" + id);
var cloned = real.clone(true);

// Put the cloned element directly after the real element
// (the cloned element will take the real input element's place in your UI
// after you move the real element in the next step)
real.hide();
cloned.insertAfter(real);   

// Move the real element to the hidden form - you can then submit it
real.appendTo("#some-hidden-form");
66
ответ дан 29 November 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: