0

いくつかのチェックボックスがある単純な HTML フォームがあります。ここでの私の目標は、このデータ (チェック ボックスの値) を jQuery 関数に渡し、Ajax 経由で PHP スクリプトに渡される文字列に値を入力することです。ここに私のhtmlがあります:

     <table class="ui-widget-content" border="0" style="width: 100%;">
            <tr>
                <td width="252px;">PVC's Required</td>
                <td align="left">
                        <input type="checkbox" id="pvc" name="pvc" value="abc" />abc<br />
                        <input type="checkbox" id="pvc" name="pvc" value="def" />def<br />
                        <input type="checkbox" id="pvc" name="pvc" value="ghi" />ghi<br />                            
                        <input type="checkbox" id="pvc" name="pvc" value="jkl" />jkl<br />
                        <input type="checkbox" id="pvc" name="pvc" value="NONE" />NONE<br />
                </td>           
            </tr>
</table>

jQuery:

$("#addTechDetails")
                    .button()
                    .click(function(){

                        var pvc = $("#input[ type= 'checkbox']");
                        var pvcData = [];
                        pvc.filter(':checked').each(function(){
                            pvcData.push($(this).val());
                        })
                        pvc=pvcData.join(',');

                        //initial info required to process form
                        var newOrExisting = $("#newOrExisting").val();      
                        var numCircuits = $("#numCircuits").val();          

                            var str = "newOrExisting="+newOrExisting+"&numCircuits="+numCircuits+"&pvc="+pvc;

                                     //ajax request
                            $.ajax({
                                type : "POST",
                                cache : false,
                                url : "ajax/addTechDetails.php",
                                data : str,
                                complete : function(xhr, result){
                                    if (result != "success") return;
                                    var response = xhr.responseText;                                    
                                    $("#result").html(response);
                                }
                            })
            });

上記の出力は、いくつかの選択がチェックされている場合でも次のようになります: '','','','',

4

2 に答える 2

1

入力セレクターの先頭に#を付けないでください。それはIDセレクターです。input [type='checkbox']が必要です

..そして上記のように、チェックボックスは同じIDを持つことはできません。

于 2013-02-11T14:14:16.070 に答える
0

チェックボックスには一意のIDが必要です。

<input type="checkbox" id="pvc1" name="pvc" value="abc" />
<input type="checkbox" id="pvc2" name="pvc" value="def" />
...

また、これはIDで識別するために使用されるため(IDではないため)、この行var pvc = $("#input[ type= 'checkbox']");に先頭を含めることはできません。#input

次のいずれかの方法を使用できます。

  • $('input[type="checkbox"]:checked').each()チェックされたすべての要素を繰り返します
  • $('input[name="pvc"]:checked').each()すべてのチェックボックスを名前で繰り返します
  • $('#pvc'+indexOfiteration).val()IDから直接値を取得します

ドキュメントにはさらに多くのオプションがあります。

于 2013-02-11T14:30:48.607 に答える