2010-12-14 62 views
0

我對JavaScript或jQuery並不是非常好,主要是處理數據庫,但是我一直在收集一個相當複雜的表單所有的數據。j-query和javascript表單使用多個提交沒有提交表單中的所有數據

基本上它等於三個不同的提交按鈕,這意味着發送到表格中的數據與不同的隱私設置發送到表格。數據庫中的表格正在更新,每個按鈕的隱私設置都是正確的,但它並沒有將表單思想部分的值發送給它所指的php文件。

的形式在HTML中實現如下:

<FORM action="thought_post.php" method="post" name="thought"> 

<INPUT onfocus="this.select(); this.value=''" 
     type="text" value="Thought..." 
     size="72" /> 
<div class="megamenu" style="position: absolute; ;left: 478px; top: 11px;"> 
    <ul> 
     <li class="downservices"><a href="#">Publish...</a></li> 
     <div class="servicesdropped"> 
      <ul class="right"> 
       <input type="hidden" name="privacy"> 
       <li><a href="javascript:poststyle('private')">Private</a></li> 
       <li><a href="javascript:poststyle('friends')">Friends only</a></li> 
       <li><a href="javascript:poststyle('public')">Public</a></li> 
      </ul> 
     </div> 
    </ul> 
</div> 

</FORM> 

,並在同一頁的頁眉的JavaScript如下:

<link rel="stylesheet" href="dropdown.css" type="text/css" media="screen" /> 
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $(".downservices").click(function(){ 
      $(".servicesdropped").toggle("fast"); 
     }); 
    }); 
</script> 

<script language="JavaScript" type="text/javascript"> 
<!-- 
    function poststyle(selectedtype) 
    { 
     document.thought.privacy.value = selectedtype ; 
     document.thought.submit() ; 
    } 
--> 
</script> 

如果任何人都可以解釋爲什麼thought值用戶輸入的內容不會被傳遞到thought_post.php,那將是美妙的!

+0

如果您使用JQuery,絕對沒有理由擁有內聯javascript! – Soviut 2010-12-14 02:36:01

回答

2

嘗試分配一個name到您的「思想」inputname需要表單控件是valid for submission

<INPUT onfocus="this.select(); this.value=''" type="text" value="Thought..." size="72" name="thought" /> 

作爲一個側面說明,請確保您的其他input是有效的標記爲好,input標籤應自行閉合:

<input type="hidden" name="privacy" /> 

製作後這些變化和檢查表單發佈FireBug,我可以看到「思想」的正確價值通過。

此外,正如其他答案提到,你應該separate your JavaScript and HTML,也許完全用jQuery完成這一點。

希望有幫助!

0

嘗試設置一個ID爲隱私領域(比如說,ID =「隱私」),以及與此選擇它:

getElementById("privacy").value = selectedtype; 

順便說一句,你可以把所有的JavaScript在一個<script>塊:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $(".downservices").click(function(){ 
      $(".servicesdropped").toggle("fast"); 
     }); 
    }); 

    function poststyle(selectedtype) 
    { 
     document.thought.privacy.value = selectedtype ; 
     document.thought.submit() ; 
    } 
</script> 

你也可以很容易地處理焦點事件對jQuery的輸入,所以腳本不會停留在你的HTML中。