2013-03-15 97 views
0

我有一個使用jscript提交給服務器的表單,但是我需要發佈提交按鈕的值。這不能用傳統的方式完成,我必須使用jscript來發布表單。我正在做的是當按鈕被點擊時,我想用按鈕的值創建一個隱藏文本項並將其發佈到服務器。我有創造和元素加到表單上存在一些問題:單擊按鈕時使用jquery創建一個隱藏元素

的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> 
+1

什麼類型是#query? – bksi 2013-03-15 00:28:28

+0

其輸入提交 – devdar 2013-03-15 00:54:52

回答

1

呼叫指定屬性typeattr()不元素的構建。此外,citizenRegistration的選擇器缺少.#,具體取決於它是ID還是類。

$(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/

你可以看到螢火蟲檢查頁面時,隱藏的元素:

enter image description here

+0

我沒有看到你的jsfiddle中創建的元素 – devdar 2013-03-15 00:46:15

+0

檢查與螢火蟲,在那裏的網頁。我還更新了我的答案,以證明其被附加。 – 2013-03-15 00:56:33

+0

非常感謝你的工作 – devdar 2013-03-15 02:39:51

1

沒有看到你的HTML我不能肯定,但我看到兩個可能的問題:

var form = $('citizenRegistration'); 

這不是一個有效的選擇器。它可能應該從#.開始。不過,你似乎並沒有最終使用它。

.appendTo('.buttons'); 

如果.buttons是輸入元素,你不能追加到它。如果不止一個,您也不應該追加到多個.buttons元素。相反,你應該把它附加到form。只需.appendTo(form)將正常工作。

+0

'.buttons'是div元素的類名我會嘗試的形式瞭解它是如何工作的 – devdar 2013-03-15 00:39:07

+0

我仍然無法看到元素被附加到任何位置的形式 – devdar 2013-03-15 00:40:46

+1

@dev_darin爲什麼你能夠看到它是否隱藏? – 2013-03-15 00:46:17

相關問題