2011-02-10 12 views
0

私がやっていることは、jQueryを使ってページでチェックされているチェックボックスをつかむことです。ボックスは、IDと値に対してそれぞれ固有のID番号を使用して動的に作成されます。jQueryでページのチェックボックスを取得し、値を文字列に入れてajaxコールを送信します。

各チェック項目の値を取得する最も簡単な方法は何ですか?次に、3より小さいか大きいかをチェックします。 3つしかチェックされていない場合は、各チェックボックスの値をPHPスクリプトに送ります。私はページの通常のボタンを使用しているので、実際にはフォームの一部ではなく、.clickメソッドを使用する必要があります。 ここではいくつかの例を見てきましたが、私がやろうとしていることはあまりありません。すべてのチェックボックスがフォームである場合は、使用してあなたがチェックされますどのように多く得ることができます$('#form_id').serialize();

答えて

2

のidのなど

完全なコードつかむことができ、この

$('#mybtn').live('click',function(){ 
    var num_checked = $("input[type=checkbox]:checked").length; 
    var checkbox_values = new Array(); 
    if(num_checked > 3) { 
     //its greater than 3 
     //do what you need to do 
    } else if(num_checked < 3) { 
     //its less than 3 
     //do what you need to do 
    }else { 
     //it equals 3 
     //do what you need to do 

     //go thru and add values to array 
     $("input[type=checkbox]:checked").each(function() { 
      checkbox_values.push($(this).val()); 
     }); 
    } 
}); 

あなたは変数を出力できアレイcheckbox_valuesの電子メールを送信する場合〜

+0

これは正常に動作しますが、各値に対してajax呼び出しを行わずに、配列をajax呼び出しで更新するにはどうすればよいですか?今、私は配列に警告すると、それは私にそれぞれの値の警告を与えます。 –

+0

あなたはeach()関数の外側に警告する完全な配列を警告したい場合。あなたのajax呼び出しのために既に書かれたコードはありますか? – jsweazy

+0

私は外部に警告しようとし、JSエラーを取得し続けました。未定義関数。 Thx –

1

何をしたい

$("input[type=checkbox]:checked").length 

http://jsfiddle.net/XKRRL/7/

本当にわかりませんチェックされているものと関係があるが、jsフィドルはチェックされたものをループする。そこから、私はあなたが欠けていると信じていたコードがある

$(function() { 
    $('#mybtn').live('click', function() { 
     var checkedBoxes = $("input[type=checkbox]:checked"), 
      checkedNum = checkedBoxes.length; 

     if(checkedNum === 3){ 
      for(var i=0; i< checkedNum; i++){ 
       alert($(checkedBoxes).eq(i).val()); 
      } 
     } 

    }); 
}); 
+0

+1 serialize()は、フォーム内の値を取得する最も簡単な方法です:http://api.jquery.com/serialize/選択を簡単に行うことができます。例:$( "form input:visible" )。シリアライズ(); – Christophe

0

を行うことができます

$('#mybtn').live('click',function(){   
     $("input[type=checkbox]").each(function() { 
     // I guess do something here. 
)}; 
)}; 
0

すべてのチェックボックスをつかむのは簡単です:

 
var checked = $('input[type=checkbox]:checked'), 
    count = checked.length; 

if (count == 3) { 
    values = $.map(checked, function(i){ 
    return $(this).val(); 
    }); 
} 

次に、値の配列に必要な操作を行います。

関連する問題