2014-10-30 99 views
1

我想开发一个日历输入变量,它也允许输入框的日期选择器。隐藏/显示JQuery的日期选择器不工作

HTML

<select id="select"> 
    <option value="Type">Type</option> 
    <option value="Range">Range</option> 
    <option value="Individual">Individual</option> 
</select> 
<div id="range" style="display:none;"> 
<input type="text" name="job_from" id="job_from" placeholder="From" class="datepicker" /> 
    <input type="text" name="job_to" id="job_to" placeholder="To" class="datepicker" /> 
</div> 

<div id="ind" style="display:none;"> 

<button type="button" id="add2" class="submit">Add Another Date</button> 
    <div id="item2"> 
     <div><input type="text" class="datepicker" name="jobdates[]" /></div> 
     </div> 
    </div> 

SCRIPT

$(document).ready(function(){ 
    $("#add2").click(function (e) { 
      //Append a new row of code to the "#items" div 
      $("#item2").append('<div><input type="text" class="datepicker" name="jobdates[]" /><button class="delete submit" type="button">Delete</button></div>'); 
     }); 

    $("body").on("click", ".delete", function (e) { 
     $(this).parent("div").remove(); 
    }); 

    $('#select').change(function(){ 
     if($('#select option:selected').text() == "Range"){ 
     $('#range').show(); 
     } 
     else{ 
     $('#range').hide(); 
     } 
     if($('#select option:selected').text() == "Individual"){ 
     $('#ind').show(); 
     } 
     else{ 
     $('#ind').hide(); 
     } 
    }) 
});  

Here is the jsfiddle

时,我带走的日期选择器jQuery函数隐藏/显示功能的作品,当我把日期选择器脚本在没有任何作品。有人可以解释为什么我不能同时工作

+0

我只是说了'jqueryui'脚本上的jsfiddle外部资源,它似乎做工精细http://jsfiddle.net/ktzg30Lt/1/ – chriz 2014-10-30 16:37:52

+0

那绝对是近了,谢谢。其他问题是,它只允许日期选择器上的第一个输入中的'个人'的选择,添加其他输入,看到:( – Brobina 2014-10-30 16:40:15

+0

嗯,我看到了,给我一分钟,我会看看! – chriz 2014-10-30 16:41:29

回答

3

你的代码是正确的,我相信你只是间没有”包括DatePicker运行所需的核心jQueryUI文件。

添加到您的网页的head

<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" /> 
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script> 

EXAMPLE 1

为了解决地方datepicker未被由于初始化被写入DOMjQuery后的新元素已初始化的问题datepicker,您只需在用户创建新的元素时调用datepicker

$("#add2").click(function (e) { 
     //Append a new row of code to the "#items" div 
     $("#item2").append('<div><input type="text" class="datepicker" name="jobdates[]" /><button class="delete submit" type="button">Delete</button></div>'); 
     // This is where you need to add the datepicker jQuery again <<<<<<<<< 
     $(".datepicker").datepicker({ changeMonth: true, changeYear: true, numberOfMonths: 2, showWeek: true, dateFormat: 'dd-mm-yy'}); 
}); 

EXAMPLE 2

+0

非常感谢,我的头痛现在可以慢慢消失。 – Brobina 2014-10-30 16:53:59

+0

不用担心男人,感冒了,庆祝! – chriz 2014-10-30 16:54:26

0

我认为这是不可能的。 拨打第二输入(日期选择器),并显示隐藏它,如果检查中... 剩下的就是JS和CSS

编辑:

$(document).ready(function(){ 
$("#add2").click(function (e) { 
     //Append a new row of code to the "#items" div 
     $("#item2").append('<div><input type="text" class="datepicker" name="jobdates[]"/><button class="delete submit" type="button">Delete</button></div>'); 
    $(".datepicker").datepicker({ changeMonth: true, changeYear: true, numberOfMonths: 2, showWeek: true, dateFormat: 'dd-mm-yy'}); 
}); 

$("body").on("click", ".delete", function (e) { 
    $(this).parent("div").remove(); 
}); 

$('#select').change(function(){ 
    if($('#select option:selected').text() == "Range"){ 
    $('#range').show(); 
    } 
    else{ 
    $('#range').hide(); 
    } 
    if($('#select option:selected').text() == "Individual"){ 
    $('#ind').show(); 
    } 
    else{ 
    $('#ind').hide(); 
    } 
}) 
});  
+0

为什么有什么不同的显示隐藏一个DIV与输入datepicker类? – Brobina 2014-10-30 16:38:21

+0

http://jsfiddle.net/ktzg30Lt/1/ – chriz 2014-10-30 16:39:01

+0

哦......你已经做好了准备(我的编辑来得太晚了......) – brandelizer 2014-10-30 16:43:16