2016-04-04 8 views
-1

私はテーブルのチェックボックスのリストを持っています。チェックボックスがチェックされている場合、値は0に設定され、チェックされていない場合は-1になります。現在のコードは、チェックされている場合にのみチェックボックスを送信します。保存ボタンを押すたびに、すべてのチェックボックスをフォームに送信します。私はそれを行うことができる方法はありますか?ここに私のコードです:フォームのすべてのチェックボックスフィールドを提出する方法は?

HTML:

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

はJQuery:

//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); 
}); 

私の現在コードはチェックされている場合にのみ値を送信します。

+1

これはチェックボックスの働きです。 Ifは、チェックされている場合にのみ値を与えます。 JavaScriptを使用しない場合も同様です。したがって、実際には0または-1をチェックする必要はありません。値の存在がチェックされているかどうかがわかります。この問題を回避しようとするのではなく、抱きしめてください。 – GolezTrol

+0

チェックボックスをオフにしたときに別の値を設定する必要がある場合、どうすれば回避できますか?チェックされていないチェックボックスを送信できない場合、DBにその値を保存する方法は?あなたが推奨する方法は他にありますか? –

+2

[チェックされていないチェックボックスを投稿する]の複製があります(http://stackoverflow.com/questions/1809494/post-the-checkboxes-that-are-unchecked) – showdev

答えて

0

これはあなたの投稿に対する正確な回答ではありませんが。この質問はさまざまな形で何度も出てきました。これまでのところ、下のリンクのアプローチはまともな解決策であるようです。

Post the checkboxes that are unchecked

+1

質問に回答がある場合は、それを重複としてマークしてください。あなたが十分な担当者を持つまであなたがそれと一緒に暮らすことができないなら。回答として他の質問へのリンクを投稿するのは正しい方法ではありません。 – GolezTrol

+0

申し訳ありませんが、私はここで新しいです。私は複写として印を付けるのに十分な担当者がいません。その男を助けたかった。他の投稿から回答をコピーできたかもしれませんが、私はそれも正しいと感じませんでした。それを重複としてマークできますか? – peso

1
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を持つすべてのタグをループします。チェックされたプロパティがtrueの場合、ボックスの名前、二重大括弧、等号、およびボックス。

チェックされている場合、チェックは引き続き行われますが、値はゼロです。

EDITED:[]は、チェックボックスが配列としてサーバーに送信されることを意味します。コンソールログでサンプルデータを確認してください。

私はあなたがいくらか助けてくれることを願っています...または少なくとも、私はそれが混乱しないことを望みます。

+0

ありがとうございます。私はこれが私の場合に役立つと思う。 –

関連する問題