0

選択したチェックボックスをキャプチャして、AJAX経由で送信しようとしています。しかし、私は選択した要素をワンクリックで遅くするだけです。つまり、チェックボックスを最初にクリックしても、「elm」ループによってチェックボックスが選択されていると認識されません。もう一度クリックすると、その要素が吐き出されます。3回目のクリックで、1回目と2回目のクリックが吐き出されますが、3回目は吐き出されません。

$(".datatype").mouseup(function() 
{
    /* check keyword */
    var searchbox = document.forms['formIndex'].searchbox.value;

    /* check datasetype */
    var vals = [], datasettype =  document.forms['formIndex']['datasettype[]'];
    for(var i=0,elm;elm = datasettype[i];i++)
    {
        alert(i + ': ' + elm.value);
        if(elm.checked)
        {
            alert(i + ': ' + elm.value);
            vals.push(elm.value);
        }
    }
    contents = vals.join(',');

HTMLコード:

<fieldset>
  <legend style="font-size: 1.2em; font-weight: bold; border: 1px solid aaa" for="selectedRegion">Data Set Type</legend>
  <input type="checkbox" class="datatype" name="datasettype[]" value="1">National<br />
  <input type="checkbox" class="datatype" name="datasettype[]" value="3">Sub-Regional<br />
  <input type="checkbox" class="datatype" name="datasettype[]" value="2">Regional<br />

誰かが私にそれがなぜそうなるのかについてのヒントを与えることができますか?助けてくれてありがとう。

4

1 に答える 1

0

change代わりにイベントを使う必要があると思いますmouseup

$(".datatype").change(function() 
于 2012-11-27T14:00:42.453 に答える