checkbox,不選中傳值


根據W3C的規則未選中的checkbox和禁用的控件不是有效控件,不會被POST。因此如果要未選中的checkbox表示值0的話,就不得不曲線完成了。
最近研究Zend Framework時候,發現其中的一個方法formCheckbox()。這個方法是生成checkbox表單的。但是它在生成checkbox的之前會生成一個hidden表單。這種做法很巧妙。
比如:
<input type="hidden" name="foo" value="0">
<input type="checkbox" name="foo" id="foo" value="1">
生成這樣的表單,當checkbox未選中的時候,提交的是hidden表單。值0就被提交到服務器了。
當checkbox都選中的時候,hidden和checkbox表單都被提交了,但是因為它們的name是一樣的,所以hidden的值被checkbox覆蓋了。所以就得到了數值1。
這種方法簡單巧妙,值得推廣。

經測試,在PHP中,如果有多個name相同的表單,post到服務器,后台僅取最后一個表單的值。而在ASP.NET中,會把這個多個表單的值合並成逗號分割的值。因此,這種方法用在PHP下更合適。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM