2011-09-21 33 views
1

我正在尝试使用jQuery的表单插件。我使用JSON示例herejQuery表单插件和jQuery DatePicker不一起工作

由于某种原因,当我使用jQuery表单插件时,日期选择器没有显示在页面上。在我的jQuery的文件我有:

jQuery.noConflict(); 

jQuery(document).ready(function($) { 


    $('#csf_map_form').ajaxForm(function() { 
     dataType: 'json', 
     success: process_json 
    }); 


    function process_json(data) { 
     alert(data.csf_map_offense_group1); 
    } 



    $('#csf_map_start_date').datepicker({ 

     dateFormat : 'mm/dd/yy', 
     yearRange : '2011:2011', 
     changeMonth: true, 
     changeYear: true, 
     defaultDate : new Date(2011, 8-1,1), 
     minDate : new Date(2011, 1-1,1), 
     maxDate : new Date(2011, 8-1, 25) 

    }); 



    $('#csf_map_end_date').datepicker({ 
     dateFormat : 'mm/dd/yy', 
     yearRange : '2011:2011', 
     changeMonth: true, 
     changeYear: true, 
     defaultDate : new Date(2011, 8-1, 25), 
     minDate : new Date(2011, 1-1,1), 
     maxDate : new Date(2011, 8-1, 25) 

    }); 

}); 

在我的PHP文件,表单的外观:

//start form 
     $output .= '<form id="csf_map_form" action="path-to-file/csf_map_form_handler.php" method="post" >'; 


    //1st datepicker 
      $output .= '<div>'; 
      $output .= '<label for="csf_map_start_date">Start Date:</label>'; 
      $output .= '<div id="csf_map_start_date" style="font-size: 10px;"></div>'; 
      $output .= '</div>'; 

    //2nd datepicker  
      $output .= '<div>'; 
      $output .= '<label for="csf_map_end_date">End Date:</label>'; 
      $output .= '<div id="csf_map_end_date" style="font-size: 10px;"></div>';    
      $output .= '</div>'; 

//radio button group div   
      $output .= '<div style="float: left; width: 150px; margin: auto; padding-left: 20px; ">'; 
      $output .= '<label for="csf_map_group1">Select Offense:</label><br />'; 
      $output .= '<input type="radio" name="csf_map_group1" checked="checked" value="TINY">Tiny</input><br />'; 
      $output .= '<input type="radio" name="csf_map_group1" value="MEDIUM"/>Medium</input><br />'; 
      $output .= '<input type="radio" name="csf_map_group1" value="LARGE">Large</input><br />'; 
      $output .= '</div>'; //end radiobuttons 

      $output .='<input type="submit" value="Submit" />'; 

      $output .= '</form>'; 

出于某种原因,给ajaxForm与日期选择器冲突。如果我注释掉$('csf_map_form'),ajaxForm和process_json函数的函数,那么表单中的日期选择器工作正常。如果我不发表评论,那么日期选择器就不会出现。但是,点击提交时警报会触发。它会警告在单选按钮中选择的内容。

关于发生了什么的任何想法?我如何让他们打得好?我犯了什么错误?

谢谢。

+0

您使用的是哪个版本的jQuery和jQuery UI? –

回答

2

华友世界,我想通了。

1)我改变了内联datepickers默认 - 用datepick替换div。

2)我错过了$('#csf_map_form')中的'#'。

3)在csf_map_form_handler.php中,我只返回表单信息的一部分。当我改变它,以便我返回开始和结束日期以及单选按钮的选择时,它就起作用了。

谢谢。