2010-07-19 107 views
1

好吧,我已经试图读这个,但我很难过。不幸的是,这是我没有正确理解javascript的情况。jquery /验证插件/对象文字:选择多个复选框

在处理与jqueries验证插件形式,您发送的变量使用文字符号的PHP邮件:

submitHandler: function() { 
    $.post("includes/mail-form.php", 
    { 
    age : $("#form-age-id").val(), 
    email : $("#form-email-id").val(), 
    name : $("#form-name-i").val(), 

我理解。变量年龄正在被分配元素的值。当我有多个复选框,虽然,我不能用:

$("input.checkboxes:checked').val() 

,因为它只会选择第一个匹配的元素,所以我需要使用类似的功能在多个复选框来遍历到

var allVals = []; 
$('input.orthodontic-medical-form-disease:checked').each(function() { 
     allVals.push($(this).val()); 
     }); 
return allVals; 

我不明白的是我如何将返回值赋予文字。我试过

submitHandler: function() { 
    $.post("includes/mail-form.php", 
    { 
    age : $("#form-age-id").val(), 
    email : $("#form-email-id").val(), 
    name : $("#form-name-i").val(), 
     checkboxes : function(){ 
      var allVals = []; 
    $('input.orthodontic-medical-form-disease:checked').each(function() { 
     allVals.push($(this).val()); 
     });a 
      return allVals; 
     } 

但我想这是分配实际函数本身的变量,而不是返回的值。请有人帮助我吗?

回答

0

试试这个:

checkboxes : $('input.orthodontic-medical-form-disease:checked').map(function() { 
       return $(this).val(); 
      }).get() // returns array of checked values 

另外,封装你 '复选框价值越来越' 逻辑到一个名为功能:

function getCheckedVals() { 
    var rv = $('input.orthodontic-medical-form-disease:checked').map(function() { 
       return $(this).val(); 
      }).get(); 
    return rv; 
} 

,只是把它叫做:

checkboxes: getCheckedVals() 
+0

这样的作品,我只需要在最后附加toString()。所以: $('input.orthodontic-medical-form-disease:checked')。map(function(){return $(this).val();})。get()。toString(); 我觉得我误解了对象字面布局。由于缺乏严格的类型,我没有意识到我正在将一个数组或函数对象传递给php,而不是像我应该那样的字符串。谢谢! – 2010-07-20 00:30:13