簡體   English   中英

如何提交表單中的所有復選框字段?

[英]How to submit all checkbox fields in the form?

我有一個帶有復選框列表的表格。 如果復選框被選中,則值設置為 0,如果未選中,則值為 -1。 我當前的代碼僅在選中復選框時才提交復選框。 每次點擊保存按鈕時,我都想提交表單中的所有復選框。 有什么辦法可以做到嗎? 這是我的代碼:

HTML:

<input type="checkbox" name="user" value="~(user_ID)" class="chkBlock" />

查詢:

//This code switch value based on if check box is checked or not
$j('.chkBlock').click(function(){
     $j(this).val(this.checked ? 0:-1);
});

並且此代碼集復選框狀態基於來自 DB 的值:

$j( document ).ready(function() {
    $j('input.chkBlock[value="0"]').prop("checked", true);
    $j('input.chkBlock[value="-1"]').prop("checked", false);
    $j('input.chkBlock[value=""]').prop("checked", false);
});

我當前的代碼僅在選中時才提交值。

var boxes=new Array();
$(".chkBlock").each(
function()
{
  if( $(this).prop("checked") )
  {
      boxes.push( $(this).prop("name")+"[]="+$(this).val() );
  }
  else
  {
      boxes.push( $(this).prop("name")+"[]=0" );
  }
});
console.log( boxes.join("&") );

我在沒有測試的情況下寫了上面的內容 - 我要睡覺了,但我想我會給你一些思考的食物。

我相信我上面寫的代碼將循環遍歷所有類 chkBlock 的標簽,如果屬性檢查為真,那么它將附加框的名稱、雙方括號、等號和框的值。

如果checked 不為真,則檢查仍然通過,但值為零。

編輯: [] 表示復選框作為數組發送到服務器。 檢查控制台日志以獲取示例數據。

我希望對你有所幫助......或者至少,我希望它不會混淆。

雖然這不是您帖子的確切答案。 這個問題以不同的形式多次出現。 到目前為止,下面鏈接中的方法似乎是一個不錯的解決方案。

發布未選中的復選框

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM