Создать скрытое поле в JavaScript

Как создать скрытое поле в JavaScript в определенной форме?

<code>    <html>
    <head>
      <script type="text/javascript">
      var a =10;
function test() {
      if (a ==10)  {
        //  ... Here i need to create some hidden field for form named = chells
      }
}
      </script>  
    </head>   
    <body >
      <form id="chells" name="formsdsd">
      <INPUT TYPE=BUTTON OnClick="test();">
     </form> 
    </body>
    </html> 
</code>
 Quentin16 июн. 2009 г., 13:14
Поскольку ваш скрипт выполняется до того, как форма существует, то, что вы хотите, невозможно. Вы можете написать это в функции и назначить ее событию onload. В вашем HTML тоже есть ошибкиvalidator.w3.org

Ответы на вопрос(4)

Решение Вопроса
var input = document.createElement("input");

input.setAttribute("type", "hidden");

input.setAttribute("name", "name_you_want");

input.setAttribute("value", "value_you_want");

//append to form element that you want .
document.getElementById("chells").appendChild(input);
 joe16 июн. 2009 г., 13:33
Но я просто пытаюсь использовать его сказал, что элемент формы является нулевым
 joe16 июн. 2009 г., 13:49
в тот же момент .. document.chells работает, но document.getElementById (chells) возвращает ноль. В чем будет проблема. Как восстановить это
 joe16 июн. 2009 г., 14:21
Я нашел проблему .. Ее разница между именем и идентификатором
 16 июн. 2009 г., 13:17
Коллекция форм более подходит, чем getElementById для именованной формы, и все это зависит от порядка выполнения JS против загрузки DOM, но по сути это правильный подход
 16 июн. 2009 г., 13:38
Как отметил Дэвид, убедитесь, что вы выполняете этоafter DOM загрузился. Попробуйте использовать событие onload для начинающих.

я с / без формы. Если вам нужна форма, просто передайте форму с объектомstatus = true.

Вы также можете добавить несколько скрытых полей. Используйте этот способ:

CustomizePPT.setHiddenFields( 
    { 
        "hidden" : 
        {
            'fieldinFORM' : 'thisdata201' , 
            'fieldinFORM2' : 'this3' //multiple hidden fields
            .
            .
            .
            .
            .
            'nNoOfFields' : 'nthData'
        },
    "form" : 
    {
        "status" : "true",
        "formID" : "form3"
    } 
} );

var CustomizePPT = new Object();
CustomizePPT.setHiddenFields = function(){ 
    var request = [];
	var container = '';
	console.log(arguments);
	request = arguments[0].hidden;
    console.log(arguments[0].hasOwnProperty('form'));
	if(arguments[0].hasOwnProperty('form') == true)
	{
		if(arguments[0].form.status == 'true'){
			var parent = document.getElementById("container");
			container = document.createElement('form');
			parent.appendChild(container);
			Object.assign(container, {'id':arguments[0].form.formID});
		}
	}
	else{
		 container = document.getElementById("container");
	}
	
	//var container = document.getElementById("container");
	Object.keys(request).forEach(function(elem)
	{
		if($('#'+elem).length <= 0){
			console.log("Hidden Field created");
			var input = document.createElement('input');
			Object.assign(input, {"type" : "text", "id" : elem, "value" : request[elem]});
			container.appendChild(input);
		}else{
			console.log("Hidden Field Exists and value is below" );
			$('#'+elem).val(request[elem]);
		}
	});
};

CustomizePPT.setHiddenFields( { "hidden" : {'fieldinFORM' : 'thisdata201' , 'fieldinFORM2' : 'this3'}, "form" : {"status" : "true","formID" : "form3"} } );
CustomizePPT.setHiddenFields( { "hidden" : {'withoutFORM' : 'thisdata201','withoutFORM2' : 'this2'}});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='container'>

</div>

var element1 = document.createElement("input");
element1.type = "hidden";
element1.value = "10";
element1.name = "a";
document.getElementById("chells").appendChild(element1);

$('#form').append('<input type="hidden" name="fieldname" value="fieldvalue" />');

или другой способ

$('<input>').attr({
    type: 'hidden',
    id: 'fieldId',
    name: 'fieldname'
}).appendTo('form')

Ваш ответ на вопрос