代码之家  ›  专栏  ›  技术社区  ›  joe

在javascript中创建隐藏字段

  •  30
  • joe  · 技术社区  · 15 年前

    如何在javascript中将隐藏字段创建到特定表单中?

        <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> 
    
    4 回复  |  直到 6 年前
        1
  •  94
  •   Haim Evgi    15 年前
    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);
    
        2
  •  20
  •   Shreeyansh Jain    11 年前

    可以使用jquery动态创建元素

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

    或其他方式

    $('<input>').attr({
        type: 'hidden',
        id: 'fieldId',
        name: 'fieldname'
    }).appendTo('form')
    
        3
  •  4
  •   jaybro    8 年前

    我发现这是可行的:

    var element1 = document.createElement("input");
    element1.type = "hidden";
    element1.value = "10";
    element1.name = "a";
    document.getElementById("chells").appendChild(element1);
    
        4
  •  0
  •   SivolcC    6 年前

    可以使用此方法创建带/不带窗体的隐藏文本字段。如果需要窗体,只需将窗体与对象一起传递 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>