2010-03-09 141 views

回答

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

要回答你的第二個問題:

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

是否有可能在飛行中添加ID和名稱屬性??????? – 2010-03-09 10:07:26

+0

謝謝大衛 – 2010-03-09 11:32:00

+51

請注意,如果您在創建輸入類型後嘗試更改輸入類型,IE將會窒息。使用'$('')。foo(...)'作爲解決方法。 – 2011-10-06 04:18:28

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

是否有人測試舊IE這個答案? – 2012-08-31 11:54:20

+7

個人而言,我認爲這是一個比公認的答案更好的方法,因爲它涉及更少的DOM操作/函數調用。 – PaulSkinner 2013-08-05 09:38:46

+2

@PaulSkinner對於給定的情況,是的,你是正確的,但並不總是如此。看看這裏http://stackoverflow.com/a/2690367/1067465 – 2014-08-06 18:08:57

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

這是給控制檯錯誤'意外的標識符'。 – 2017-07-19 08:00:39

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

什麼是「在服務器上看到的名字」? – SaAtomic 2017-03-13 06:31:32

10

同爲大衛的,但沒有ATTR()

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

這種填充標籤的方式有沒有名字? – DLF85 2016-03-08 05:24:03