2

以下のようなチェックボックスの配列がありますが、

<input type="checkbox" value="1" id="a_r_id[1]" name="a_r_id[1]">
<input type="checkbox" value="1" id="a_r_id[2]" name="a_r_id[2]">
<input type="checkbox" value="1" id="a_r_id[3]" name="a_r_id[3]">
<input type="checkbox" value="1" id="a_r_id[4]" name="a_r_id[4]">

私のページで...そしてJavaScript(jQuery AJAX)を介してチェックしたものだけを送信したい...どうすればそれを行うことができますか?

編集済み:

実際には、チェックされたチェックボックスですべての配列キーを取得して、ajax 経由で投稿できるようにしたいと考えています。文字列としての「1,4」のようなもの。

4

5 に答える 5

1
var keys = [],
    keystring;
$('input[name^="a_r_id"]:checked').each(function () {
    keys.push($(this).attr('name').replace(/a_r_id\[(\d+)\]/, '$1'));
});
keystring = keys.join();

もちろん、これを行うためのより良い方法がありますが、これはあなたが組み立てたようにあなたの質問に答えます.

于 2013-04-12T11:47:41.660 に答える
0

あなたが望む方法は少し逆に思えます。ブラウザはすでにチェックされたチェックボックスのみを送信しますが、次のようになります。

var re = /\[(\d+)\]$/,
    numbers = [];

$('input[name^="a_r_id\\["]:checked').each(function() {
    numbers.push(+this.name.match(re)[1]);
});

console.log(numbers.join(','));

名前が「a_r_id[」で始まるすべてのチェックボックスを選択します。次に、正規表現を使用して角括弧内の数値部分を抽出し、値のリストに追加します。

于 2013-04-12T14:05:26.790 に答える
0

最後に、上記の私の質問に対する答えを見つけました。ここに書き留めておきます。

問題 : 配列 HTML 要素から「キー」を取得するにはどうすればよいですか? (私の場合、取得したいチェックボックスのみをチェックしました)

私の回答コードは次のようなものです:

//first, i get every checked checkbox using jQuery selector,
//as mentioned by DerekHenderson.
var list_agent = $('input[name^="a_r_id"]:checked');
var l_c_agent = new Array();
//then, i create a loop to loop each object returned.
for(var i=0;i<list_agent.length;i++){
    //after that, i'm using Regular Expression ( match() ) on every returned object id and throw it into some array.
    l_c_agent[i] = list_agent[i].id.match(/[0-9]+/);
}
//finally, i join the array using javascript join() method so that i can pass it using jQuery AJAX as a string to my controller and process it.
var clean_agent_list = l_c_agent.join();
var add_url = 'test.php';
$.ajax({
    url: add_url,
    type: "GET",
    data : { 'list_agent' : clean_agent_list },
    success: function(data_return) {
        //alert(data_return);
    }
});

出力は次のようになります (上記の例の質問を使用し、ID 1、3、および 4 のみの要素をチェックしている場合)

1,3,4

誰かがより良いコードを持っている場合は、ここに書いて、私の問題を解決するのにどちらが良いかを議論できるようにしてください。

于 2013-04-12T13:55:46.647 に答える
-1

私はあなたがこのようなことをしたいと思う

<input type="checkbox" value="1" id="a_r_id_1" name="a_r_id[]">
<input type="checkbox" value="2" id="a_r_id_2" name="a_r_id[]">
<input type="checkbox" value="3" id="a_r_id_3" name="a_r_id[]">
<input type="checkbox" value="4" id="a_r_id_4" name="a_r_id[]">
于 2013-04-12T11:47:10.043 に答える
-1

ここでは、チェックボックスでこれを試すよりも、ラジオ ボタンの方が適しているようです。

<input type="radio" name="radiogroup" value="1" id="a_r_id[1]" name="a_r_id[1]">
<input type="radio" name="radiogroup" value="2" id="a_r_id[2]" name="a_r_id[2]">
<input type="radio" name="radiogroup" value="3" id="a_r_id[3]" name="a_r_id[3]">

を使用して、選択した値を取得できます

$("input:radio[name=radiogroup]").click(function() {
var value = $(this).val();
//
do something with var
//
}); 
于 2013-04-12T11:53:52.737 に答える