2010-03-09 3 views

ответ

493
$('<input>').attr('type','hidden').appendTo('form'); 

Чтобы ответить на ваш второй вопрос:

$('<input>').attr({ 
    type: 'hidden', 
    id: 'foo', 
    name: 'bar' 
}).appendTo('form'); 
+4

Можно ли добавлять атрибуты id и name на лету ??????? –

+0

спасибо David –

+51

Обратите внимание, что IE будет задыхаться, если вы попытаетесь изменить тип ввода после его создания. Используйте '$ (''). Foo (...)' как обходной путь. –

104
$('#myformelement').append('<input type="hidden" name="myfieldname" value="myvalue" />'); 
+1

ли кто-нибудь проверить этот ответ на старый IE? –

+7

Лично я считаю, что это гораздо лучший подход, чем принятый ответ, поскольку он включает в себя меньше вызовов функции/функции DOM. – PaulSkinner

+2

@PaulSkinner Для данного случая, да, вы правы, но это не всегда так. Взгляните здесь http://stackoverflow.com/a/2690367/1067465 –

17

если вы хотите добавить больше атрибутов просто нравится:

$('<input>').attr('type','hidden').attr('name','foo[]').attr('value','bar').appendTo('form'); 

Или

$('<input>').attr({ 
    type: 'hidden', 
    id: 'foo', 
    name: 'foo[]', 
    value: 'bar' 
}).appendTo('form'); 
+0

, это дает консольную ошибку 'Unexpected identifier'. –

1

Рабочая JSFIDDLE

Если ваша форма как

<form action="" method="get" id="hidden-element-test"> 
     First name: <input type="text" name="fname"><br> 
     Last name: <input type="text" name="lname"><br> 
     <input type="submit" value="Submit"> 
</form> 
    <br><br> 
    <button id="add-input">Add hidden input</button> 
    <button id="add-textarea">Add hidden textarea</button> 

Вы можете добавить скрытый вход и текстовое поле, чтобы сформировать как этот

$(document).ready(function(){ 

    $("#add-input").on('click', function(){ 
     $('#hidden-element-test').prepend('<input type="hidden" name="ipaddress" value="192.168.1.201" />'); 
     alert('Hideen Input Added.'); 
    }); 

    $("#add-textarea").on('click', function(){ 
     $('#hidden-element-test').prepend('<textarea name="instructions" style="display:none;">this is a test textarea</textarea>'); 
     alert('Hideen Textarea Added.'); 
    }); 

}); 

Проверка рабочего jsfiddle здесь

2
function addHidden(theForm, key, value) { 
    // Create a hidden input element, and append it to the form: 
    var input = document.createElement('input'); 
    input.type = 'hidden'; 
    input.name = key;'name-as-seen-at-the-server'; 
    input.value = value; 
    theForm.appendChild(input); 
} 

// Form reference: 
var theForm = document.forms['detParameterForm']; 

// Add data: 
addHidden(theForm, 'key-one', 'value'); 
+0

Что такое '' name-as-seen-at-the-server''? – SaAtomic

10

же, как Дэвид, но без ATTR()

$('<input>', { 
    type: 'hidden', 
    id: 'foo', 
    name: 'foo', 
    value: 'bar' 
}).appendTo('form'); 
+2

Есть ли название для этого способа заполнения тега? – DLF85

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