2012-09-17 47 views
1

我有我的網頁上的一組複選框。在保存時,我序列化並POST表單。發帖複選框值

<div> 
<label for="ViewAsWebpage"> 
{{#if this.ViewAsWebpage}} 
    <input type="hidden" id="ViewAsWebpage" name="ViewAsWebpage" value="true"/> 
    <input type="checkbox" class="enable-checkbox" checked /> 
{{else}} 
    <input type="hidden" id="ViewAsWebpage" name="ViewAsWebpage" value="false"/> 
    <input type="checkbox" class="enable-checkbox" /> 
{{/if}} 
<span>View as Webpage</span> 
</label> 
</div> 

使用上面的代碼:

  • 上GET - 無論用戶選擇應該貼 - 複選框是基於財產 ViewAsWebpage
  • 在POST選中/取消。

但是,當我的帖子,它不發送正確的值。有人可以建議正確的方法來做到這一點?

回答

3

<input type="checkbox">元素缺少name屬性,所以他們將不會對應當您發佈表單,請求參數。

+0

謝謝。我是否也應該從隱藏的標籤中刪除value =「true」? – dotNetNewbie

+0

@dotNetNewbie具有''對應於相同的請求參數的複選框形式的元件可以是完全冗餘的,除非你上禁用的複選框元件規劃。不應該因爲完全保留它們而產生任何負面影響。 –

+0

我按照你的建議添加了name屬性。使用Firebug進行測試 - 如果未選中:ViewAsWebpage =「」,但選中時,我會得到一個數組IsViewAsWebpage = [「」,「on」]。這是正常的嗎? – dotNetNewbie

1

我覺得現在的問題是,你沒有使用財產。

<input type="checkbox" class="enable-checkbox" name="key_in_post" /> 

使用,你應該看到它在POST數據,在這種情況下,key_in_post與「上」,如果它被選中的值。