【问题标题】:jquery/validation plugin/object literals: selecting multiple checkboxesjquery/验证插件/对象文字:选择多个复选框
【发布时间】:2010-07-19 23:01:42
【问题描述】:

好的,我已尝试阅读此内容,但我很难过。不幸的是,这是我没有正确理解 javascript 的情况。

当使用 jquery 验证插件处理表单时,您使用文字表示法将变量发送到 php 邮件程序:

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

我明白了。变量 age 被分配来自元素的值。但是,当我有多个复选框时,我不能使用:

$("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;
         }

但我猜这是将实际函数本身分配给变量,而不是返回值。有人可以帮帮我吗?

【问题讨论】:

    标签: jquery validation checkbox


    【解决方案1】:

    试试这个:

    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()
    

    【讨论】:

    • 那行得通,我只需要在最后附加 toString() 。所以: $('input.orthodontic-medical-form-disease:checked').map(function() {return $(this).val();}).get().toString();我想我误解了对象文字布局。由于缺少严格类型,我没有意识到我正在将数组或函数对象传递给 php,而不是像我应该的那样的字符串。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    相关资源
    最近更新 更多