2012-12-26 92 views
5

如何獲取已在引導被按下按鈕的「狀態」?Twitter的引導:獲取的引導複選框按鈕狀態

I.e.我使用這個代碼,這使得按鈕「切換」就像一個複選框:

<div class="btn-group" data-toggle="buttons-checkbox"> 
    <button type="button" class="btn btn-primary">Left</button> 
    <button type="button" class="btn btn-primary">Middle</button> 
    <button type="button" class="btn btn-primary">Right</button> 
</div> 

這是從the bootstrap manual here.

但我然後單擊提交按鈕 - 沒有包含在$ _ POST數據。我如何知道哪個按鈕被選中?

我曾嘗試加入'value="1" name="1"'等藏漢的按鈕 - 但仍然一無所獲。

編輯:這裏是完整的解決方案,我可以在下面的Felix的幫助下創建。被「選中」

<form method="post" action="" id="mform" class="form-horizontal"> 
<div class="btn-group" data-toggle="buttons-checkbox"> 
    <button type="button" name="left" value="1" class="btn btn-primary">Left</button> 
    <button type="button" name="middle" value="1" class="btn btn-primary">Middle</button> 
    <button type="button" name="right" value="1" class="btn btn-primary">Right</button> 
</div> 
<button type="submit" class="btn">Submit</button> 
</form> 

<script> 
    $('#mform').submit(function() { 
     $('#mform .btn.active').each(function() { 
      var input = document.createElement("input"); 
      input.setAttribute("type", "hidden"); 
      input.setAttribute("name", this.name); 
      input.setAttribute("value", this.value); 
      document.getElementById("mform").appendChild(input); 
     }); 
    }); 
</script> 

回答

15

按鈕將附屬於他們的active類。然後你可以使用jQuery來只選擇那些按鈕。由於button是表單元素,因此它們可以具有namevalue屬性,最好使用這些屬性。

例子:

var data = {}; 

$('#myButtonGroup .btn.active').each(function() { 
    data[this.name] = this.value; 
}); 

將數據發送到服務器,你可以使用Ajax和手動設置數據/與其他形式的數據合併(如果存在)。

您也可以嘗試到價值也反映到上,如果你想用「傳統」的形式提交(見Change form values after submit button pressed)提交隱藏的表單元素。

-1

可以使用bootstap開關狀態的方法來獲得當前狀態爲好。

var data = {}; 

$('#myButtonGroup .btn.active').each(function(index,element) { 
    data[this.name] = jQuery(element).bootstrapSwitch('state') 
}); 
+0

Purvesh,我不相信OP說使用BootstrapSwitch庫的任何事情 - 它是完全獨立的,而不是Bootstrap的本地部分... – MandM