繁体   English   中英

单击按钮时使用Jquery创建隐藏元素

[英]Using Jquery to create a hidden element when button is clicked

我有一个使用jscript提交给服务器的表单但是我需要发布提交按钮的值。 这不能用传统方式完成我必须使用jscript发布表单。 我正在做的是当单击按钮时我想创建一个带有按钮值的隐藏文本项并将其发布到服务器。 我在创建元素并将其附加到表单时遇到一些问题:

JScript中

 $(document).ready(function(){      

    $('#query').click(function(e){

         var form = $('citizenRegistration');


          var self= $("#query"),newElement = $("<input type='hidden'/>");

          alert("self value is : "+self.val());

                 //create a new element and copy attributes             
                newElement
                    .attr("name", 'user_request2')
                    .val(self.val())
                    .appendTo('.buttons');

            alert(newElement.attr("name"));

        e.preventDefault();
        //alert($(this).val());
        //submitPage();

    });

});

HTML

 <div class="buttons">  
    <ol>
    <li><input id="save" type="submit" name= "user_request" value="Save"/>
    <input id="update" type="submit" name= "user_request" value="Update"/>
    <input id="query" type="submit" name= "user_request" value="Query"/>
    </li>       
    </ol>
    </div>

在对attr()的调用中指定属性type ,而不是在元素的构造中。 此外, citizenRegistration的选择器也缺少a . 或者#取决于它是id还是class。

   $(document).ready(function(){
        $("#query").click(function(e){
             var form = $("#citizenRegistration"); //Added # may need .

              //removed type=hidden, you can just use $(this)
              var self= $(this),newElement = $("<input/>");
                     //create a new element and copy attributes             
                    newElement.attr({
                            "name":"user_request2",
                            "type":"hidden" //added new attribute
                     }).val(self.val()).appendTo(".buttons");

            e.preventDefault();
        });
    });

工作示例: http //jsfiddle.net/BXqVP/1/

使用firebug检查页面时,您可以看到隐藏的元素:

在此输入图像描述

没有看到你的HTML我不能确定,但​​我看到两个可能的问题:

var form = $('citizenRegistration');

这不是有效的选择器。 它应该以#或开头. 但是,你似乎最终没有使用它。

.appendTo('.buttons');

如果.buttons是输入元素,则无法附加到它。 如果有多个.buttons元素,也不应该附加多个.buttons元素。 相反,您应该将其附加到form 只需.appendTo(form)就可以了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM