0

我正在尝试捕获选定的复选框,以便通过 AJAX 将其发送出去。但是我只能一键获取选定的元素;也就是说,“elm”循环不会将我第一次单击复选框识别为选中的复选框;只有当我第二次点击时,它才会吐出那个元素。在第三次点击时,它会发出第一次和第二次点击,但不是第三次。

$(".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 回答