单击提交按钮后,jQuery选择器未显示复选框的选定值,我收到错误[object Object]

Posted

技术标签:

【中文标题】单击提交按钮后,jQuery选择器未显示复选框的选定值,我收到错误[object Object]【英文标题】:jQuery selector not showing the selected value of checkbox after click on submit button and i am getting error[object Object] 【发布时间】:2014-08-11 03:10:36 【问题描述】:

嗨,我有一个小项目,其中有选项卡 1,即 FahrzeugeWidget 和选项卡 2,即 FahrzeugeWidgetEdit。在 1 个选项卡中我有列表,在第二个选项卡中我有复选框列表,我想从中选择用户想要的内容,然后在提交按钮后切换到 tab1 并仅显示从复选框中选择的值。我使用 jQuery 选择器进行相同的操作。每件事都是运行良好。只有我无法在提交按钮后从复选框中选择值。只有一个小错误我无法识别。这里是小提琴:demo 所以我应该只从复选框中选择那些值。这是我的代码:

dashboard.php

if($param['aktion'] == 'save-widget-vehicle')

    $page['register-fahrzeuge'] = array(
        1   => array( 'Fahrzeug','aktiv',$page['script'],''),
        0   => array( 'Edit-Fahrzeug','enabled',$page['script'],'',''), 
    );

        $opts = !empty($param['filterOpts']) ? $param['filterOpts'] : array();

      $tmp = array();
      foreach ($opts as $opt) 
            $tmp[] = '"'.$opt.'"';
      
             $query = 
          'SELECT Fahrzeuge.dsnr,name
           FROM Fahrzeuge
           INNER JOIN ohne_fahrzeuge ON Fahrzeuge.dsnr = ohne_fahrzeuge.dsnr
           WHERE Fahrzeuge.name IN ('.implode(",", $tmp).')';

      $result = mysql_query($query, $myConnection);
      $data = array();
        $html = '<table  cellspacing="0" cellpadding="0" border="0">
                <tr>
                    <td>
                        <div>'.CreateRegister($page['register-news']).'</div>
                        '.CreateMessage().'
                        <div class="cont-liste-verlauf register"> ';
                        while($row = mysql_fetch_array($result))       
                        //$news_result = $fahrzeuge['name']; 
                        $html .= '<table id="fahrzeuge"> 
                                        <tr>
                                    <td>                                        
                                            <a href="amo_fahrzeuge.php"> '. $data[] = $row .'</a>                                       
                                </td>                               
                            </tr> ';                                
                              

                        $html .= '</table>          
                    </div>
                </td>
            </tr>
        </table>';


                    $return = array(
            'status' => 1,
            'html'  => $html
        );

    echo json_encode($return);
    die();

      $param['aktion'] = 'get-widget-vehicle';

dashboard.js

function getFahrzeuge()    
    var opts = [];
    $("input[type=checkbox]").each(function () 
     if (this.checked) 
         opts.push($(this).attr("id"));
     
    ); 
    return opts;
 


    function saveFahrzeugeWidget(opts)
        if(!opts || !opts.length)
          opts = allFahrzeuge;
        

        $.ajax(
          type: "POST",
          url: "ajax/dashboard.php",
          dataType : 'json',
          cache: false,
          data: filterOpts: opts, 'aktion' : 'save-widget-vehicle',
          success: function(data)
           // $('#fahrzeuge').html(makeTable(records));
             $('#fahrzeuge').html(data.html);
          ,
      error: function(data)
                alert('error' + data);
          
        );
      


      $('#fahrzeuge .butt-rahmen').live('click', function()
            if($(this).attr('id') == 'submitId')
            var opts = getFahrzeuge();
            saveFahrzeugeWidget(opts);

           //   $("#regl1").show();
           //   $("#regl1").hide();

 );
      var allFahrzeuge = [];
      $("input[type=checkbox]").each(function()
        allFahrzeuge.push($(this)[0].id)
      )  

【问题讨论】:

【参考方案1】:

我不知道这是否能解决您的问题,但您使用的是哪个 JQuery 版本? JQuery 函数 .live() 自 1.9 版起已弃用。您必须改用.on()。您是否可能因为使用 live() 函数未触发操作而无法获取值?

【讨论】:

不,这不是我正在使用旧版本的 jquery 但没有遇到任何问题的问题... Dp 你可能有一个带有一些示例代码的 JSFiddle。你能做一个没有 PHP 部分的吗? 请检查已编辑的小提琴但没有 php 不完整。我猜我在 jquery 中只有一个问题:jsfiddle.net/RCL8N/2 所以在小提琴中我只会从复选框中选择那些值.. 如前所述:您使用的是 Jquery 版本 1.10.1。从版本 1.9.1 开始,事件 .live() 被弃用,并且在版本 1.10.1 中不可用。您必须改用.on() 函数。请使用.on() 重构您的代码并进行修改。您的 HTML 中也没有提交按钮,因此我无法对其进行测试。查看我的Fiddle,它基于您使用的 1.10.1 版本。它不会提醒您内容。将版本更改为 1.8.3 并运行它,它会提醒您内容。您使用的功能不适用于 JQuery 版本。 是的,我知道,但这不是我的代码中的问题...我已经在使用旧版本并且我正在使用实时 func 但没有遇到任何问题...我尝试使用 .on( ) 但仍然没有得到任何答案

以上是关于单击提交按钮后,jQuery选择器未显示复选框的选定值,我收到错误[object Object]的主要内容,如果未能解决你的问题,请参考以下文章

单击 jQuery Mobile 的提交按钮后,如何显示“加载”弹出窗口?

单击提交后如何获取选定的单选按钮以显示特定的隐藏 div?

在按钮标题上滑动文本,如带有 css 和 javascript 的选框(不是 jQuery)

单击按钮后如何显示下一张卡片并再次单击并再次显示下一张卡片到最后一张卡片并使用jquery提交?

仅在至少选中一个复选框时才使用外部提交按钮提交表单

Jquery 使用图像作为复选框