2015-02-06 4 views
0

Есть ли способ добавить элемент в поле со списком из текстового поля на той же странице? Также как бы вы добавили этот элемент в несколько комбинированных полей на одной странице? Это форма acrobat pdf. Будем очень благодарны за любые примеры.Сопоставьте поле со списком с использованием пользовательского ввода

+0

Это действительно зависит от того, как вы реализуете поле со списком. Подключите текстовый ввод к кнопке или любому элементу, который вам нравится. В своей функции щелчка просто добавьте текст как новую опцию, li или любые другие элементы, которые вы используете для своих вариантов со списком. – Phatjam98

ответ

0

Это возможно.

Лучше всего получить документацию по JavaScript Acrobat, которая является частью пакета Acrobat SDK, загружаемого с сайта Adobe. Особый интерес представляют записи для setItems() и getItems() и их ссылочные методы объекта Field.

Благодаря реализации добавления элементов, вы бы сначала прочитать текущие элементы, а затем добавить новый элемент, а затем записать их обратно (для примера, мы предполагаем, что не существует каких-либо конкретных возвращаемые значения):

var f = this.getField("myComboBox") ; 
var fitms = new Array() ; 

for (var fi = 0 ; fi < f.numItems ; fi++) { 
fitms[fi] = f.getItemAt(fi, false) ; 
} 

if (this.getField("myAddingValue").valueAsString.length > 0) { 
fitms[fitms.length] = this.getField("myAddingValue").valueAsString ; 
} 

f.setItems(fitms) ; 

Добавить этот код к кнопке, чтобы добавить элемент в поле myAddingValue, и это все. В вышеупомянутой документации есть примеры кода.

Вы можете создать функцию уровня документа, которая принимает поле поля со списком и поле для надстройки в качестве аргумента.

+0

Хорошо работает, один вопрос. Как мне сделать эту работу для нескольких комбинированных ящиков. Допустим, у меня есть 5 комбинированных ящиков с именем place1, place2, place3, place4, place5 –

+0

Если все комбинированные поля должны быть синхронизированы, вы должны использовать команду setItems() для каждого из полей, а вместо определения переменной f для этих (последующие) поля, обращайтесь к ним непосредственно с этим.getField («place1»). setItems (fitms); и так далее. –

-1

Вы можете использовать JQuery, чтобы сделать это .. рассмотреть это как HTML

<text id="mytext"> 
<button id="btnAdd" type="button">Add</button> 
<select class="awesomecombo" id="combo_one"></select> 
<select class="awesomecombo" id="combo_two"></select> 

Javascript является

$("#btnAdd").click(function(){ 
    $(".awesomecombo").append("<option>"+$("#mytext").val()+"</option>"); 
}); 

Это позволит решить вашу цель.

UPDATE: добавлен класс для множественного выбора combobox и <option> в append.

+0

Это очень плохой пример. Приложение не будет просто добавлять текст, но должно быть значение Также избегайте идентификаторов в качестве ваших основных целей для этой деятельности. Если у вас есть несколько, которые вам нужно добавить, используйте класс, а затем вы можете вставить все сразу. – Phatjam98

+0

Согласитесь с вами, я полностью забыл добавить '' .. и не рассматривал 'class' для нескольких combobox. Обновление ответа. –

+0

Прохладный, у вас есть правильная концепция, но на основе вопроса, вероятно, лучше всего дать функциональный пример. – Phatjam98

Смежные вопросы