0

我有一个使用 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>
4

2 回答 2

1

type在调用中指定属性,而attr()不是在元素的构造中。此外,选择器citizenRegistration缺少 a.或 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 检查页面时可以看到隐藏元素:

在此处输入图像描述

于 2013-03-15T00:28:56.427 回答
1

如果没有看到您的 HTML,我无法确定,但我看到了两个可能的问题:

var form = $('citizenRegistration');

这不是一个有效的选择器。它可能应该以#or开头.。不过,您似乎并没有最终使用它。

.appendTo('.buttons');

如果.buttons是输入元素,则不能附加到它。.buttons如果有多个元素,您也不应该附加到多个元素。相反,您可能应该将其附加到form. 只会.appendTo(form)工作正常。

于 2013-03-15T00:31:18.760 回答