2015-06-01 3 views
0

Мне нужно создать форму с Javascript, чтобы обойти проблему CORS (что означает: я не могу отправить эту форму с помощью AJAX, потому что API, который я использую, не позволяет).Создание элемента выбора и значение параметра с помощью Javascript

Однако у меня возникают проблемы с настройкой значения с помощью Javascript. Для меня не работает:

var form = document.createElement("form"); 

var formElement = document.createElement("select"); 
formElement.value = "foo"; 
formElement.id = "bar"; 

form.appendChild(formElement); 

document.body.appendChild(form); 

см. jsbin.

ответ

2

select элементы имеют option элементы, чтобы пойти с ним:

var formElement = document.createElement("select"); 
var optionElement = document.createElement("option"); 

optionElement.value = "foo"; 
optionElement.text = "foo" 
optionElement.selected = true; 

formElement.appendChild(optionElement); 
formElement.id = "bar"; 

Демо: http://jsbin.com/tebasecahi/1/edit?html,js,output

+0

Спасибо, отметив это как ответ (потому что он был первым). – redconservatory

-2

Попробуйте использовать метод setAttribute вместо значения.

var form = document.createElement("form"); 
 

 
var formElement = document.createElement("select"); 
 
formElement.setAttribute('value', "foo"); 
 
formElement.id = "bar"; 
 

 
form.appendChild(formElement); 
 

 
document.body.appendChild(form);

+0

Пожалуйста, обратите внимание на отправку причины для минус 1. Код, который я опубликовал, действителен и работает. – colecmc

+1

Элементы 'select' нужны, иначе это просто пустой выбор. И ваш код ничего не изменил из OP, вы используете 'setAttribute', а не просто определяете свойство. – tymeJV

+0

Это неверно. Если вы проверяете исходный код, вы не видите свойство value в элементе select. С помощью 'setAttribute' вы можете добавить эту подсказку, в чем вопрос:« Однако у меня возникают проблемы с настройкой значения » – colecmc

1

Прежде всего, необходимо создать список выбора (прежде чем создавать варианты):

var selectList = document.createElement('select'); 

Затем добавить, что в форму:

form.appendChild(selectList); 

Затем вы можете создать опцию и добавить, что к selectList:

var option = document.createElement("option"); 
option.value = 'foo'; 
option.id = 'bar'; 
option.selected = true; 
option.text = 'foobar'; 

Наконец, добавьте, что к selectList и затем формы к body

selectList.appendChild(option); 
document.body.appendChild(form); 

См. jsBin

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