2

データベースからの JavaScript API 呼び出しから生成された多数のチェックボックスがあります。チェックボックスの値を渡してユーザーが選択し、処理ページに送信できるようにする必要があります。問題は、チェックボックスに ID が関連付けられていないことです (またはこれは問題になりません)。それらはすべて同じ名前ですが、ID はありません。

どのチェックボックスが選択されているかを見つけて、その値を次のページに渡す最良の方法は何ですか?

私が始めた 1 つの方法は、配列を使用することでした。

var options = ["option1","option2","option3"];

var option 1 = [0];
var option 2 = [1];
var option 3 = [2];

処理ページで、次を使用します。

var option1 = getFromRequest('option1') || '';
var option2 = getFromRequest('option2') || '';
var option3 = getFromRequest('option3') || '';

これを行うより良い方法はありますか?

実装を次のように変更しました。

var values = []
$("input:checkbox.subIndustry").each(function(){
            values.push(this.value);
 });

値を成功ページに渡す

window.location.href = REGISTER_SUCCESS +'&values='values.join(",")

次に、値を取得する必要があります

 var variablname = getFromRequest('values') || "";

これは未定義を返しています。何か助けはありますか?

4

4 に答える 4

2

それらを選択する簡単な方法は次のようなものです$("input[type=checkbox]:checked")

ただし、ロード後に追加されたとしても、それらがチェックされているときにそれらに追いつきたい場合は、変数を作成し、チェックボックスである各入力の「変更」状態に委譲を割り当て、これを更新することができます変更ごとに変数。

次のように簡単です。

var checked, checkedValues = new Array();
$(function() {
    $(document).on("change", "input[type=checkbox]", function(e) {
        checked = $("input[type=checkbox]:checked");

        // if you wanted to get an array of values of the checked elements
       checkedValues = checked.map(function(i) { return $(this).val() }).get();
        // make a string of the values as simple as joining an array!
        var str = checkedValues.join();  // would return something like: value1,value2,ext...
    });
})

実施例

于 2013-06-11T18:00:25.750 に答える
0

チェックボックスはすべて同じ名前であるため、次のバリエーションを使用してチェックボックスを取得できます。

var checked = $('input[name=ckboxname]:checked');

詳細については、:checked セレクターを参照してください。

于 2013-06-11T17:54:29.450 に答える