2013-05-09 80 views
1

我想要做的就是使用5个文本框,一个日历和一个按钮在日期选择器日历上创建事件。datepicker简单事件创建

这是我看过所有关于.setDate()和.getDate()格式

enter image description here

,但我不能让他们的工作。我没有插件只有简单的HTML和JavaScript的经验。什么是datepicker对象被调用,为什么每个人的代码都没有为他们的函数命名?

任何与这个插件的经验应该能够做到这一点是在5秒内

这里是我的代码

<!DOCTYPE html> 
<html> 
<head> 

    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <title>jQuery &amp; jQueryUI Base - jsFiddle demo</title> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.5.js'></script> 
    <link rel="stylesheet" type="text/css" href="/css/normalize.css"> 
    <link rel="stylesheet" type="text/css" href="/css/result-light.css"> 
    <link rel="stylesheet" type="text/css" href="http://ajax.microsoft.com/ajax/jquery.ui/1.8.7/themes/black-tie/jquery-ui.css"> 
    <script type='text/javascript' src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js"></script> 
    <style type='text/css'> 
    table.ui-datepicker-calendar tbody td.highlight > a { 
    background: url("images/ui-bg_inset-hard_55_ffeb80_1x100.png") repeat-x scroll 50% bottom #FFEB80; 
    color: #363636; 
    border: 1px solid #FFDE2E; 
} 

    </style> 



<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
var equip = document.getElementById('equipment').value; 
var size = document.getElementById('size').value; 
var surface = document.getElementById('surface').value; 
var orderNumber = document.getElementById('orderNumber').value; 
var responsible = document.getElementById('responsible').value; 


var events = [ 
    { Title: "Equipment: " + equip + "\nSize: " + size + dated + 
    "\nRequired on Surface: " + surface + "\nWork Order Number: " + orderNumber + "\nResponsible: " + responsible, Date: new Date("05/13/2013") }, 
    { Title: "Dinner", Date: new Date("02/25/2011") }, 
    { Title: "Meeting with manager", Date: new Date("03/01/2011") } 
]; 


$("div").datepicker({ 

    beforeShowDay: function(date) { 
     var result = [true, '', null]; 
     var matching = $.grep(events, function(event) { 
      return event.Date.valueOf() === date.valueOf(); 
     }); 

     if (matching.length) { 
      result = [true, 'highlight', null]; 
     } 
     return result; 
    }, 
    onSelect: function(dateText) { 
     var date, 
      selectedDate = new Date(dateText), 
      i = 0, 
      event = null; 

     while (i < events.length && !event) { 
      date = events[i].Date; 

      if (selectedDate.valueOf() === date.valueOf()) { 
       event = events[i]; 
      } 
      i++; 
     } 
     if (event) { 
      alert(event.Title); 
     } 
    } 
}); 

});//]]> 



var dated = $("div.selector").datepicker("getDate"); 

function alerter(form) {alert (form.size.value)} 
function dog() {div.setDate("+2d");} 


function submit(form){ 
var equip1 = form.equipment.value; 
var size1 = form.size.value; 
var surface1 = form.surface.value; 
var orderNumber1 = form.orderNumber.value; 
var responsible1 = form.responsible.value; 
var inputDate1 = form.inputDate.value 

var events = [ 
    { Title: "Equipment: " + equip1 + "\nSize: " + size1 + 
    "\nRequired on Surface: " + surface1 + "\nWork Order Number: " + orderNumber1 + "\nResponsible: " + responsible1, Date: new Date(inputDate1) }, 
    { Title: "Dinner", Date: new Date("05/25/2013") }, 
    { Title: "Meeting with manager", Date: new Date("03/01/2011") } 
]; 
} 
</script> 


</head> 
<body> 
    <FORM> 
    Equipment: <input type='text' id='equipment' /> <br /> 
    Size: <input type='text' id='size' /> <br /> 
    Required on Surface: <input type='checkbox' id='surface' /> <br /> 
    Work Order Number: <input type='text' id='orderNumber' /> <br /> 
    Responsible: <input type='text' id='responsible' /> <br /> 

    <div id="datepicker"></div> 
    <button type="button" onclick="alerter(this.form)">Add Lowering Event</button><br> 
    </FORM> 
</body> 


</html> 

编辑的代码:

<!DOCTYPE html> 
<html> 
<head> 

    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <title>jQuery &amp; jQueryUI Base - jsFiddle demo</title> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.5.js'></script> 
    <link rel="stylesheet" type="text/css" href="/css/normalize.css"> 
    <link rel="stylesheet" type="text/css" href="/css/result-light.css"> 
    <link rel="stylesheet" type="text/css" href="http://ajax.microsoft.com/ajax/jquery.ui/1.8.7/themes/black-tie/jquery-ui.css"> 
    <script type='text/javascript' src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js"></script> 
    <style type='text/css'> 
    table.ui-datepicker-calendar tbody td.highlight > a { 
    background: url("images/ui-bg_inset-hard_55_ffeb80_1x100.png") repeat-x scroll 50% bottom #FFEB80; 
    color: #363636; 
    border: 1px solid #FFDE2E; 
} 

    </style> 



<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
var equip = document.getElementById('equipment').value; 
var size = document.getElementById('size').value; 
var surface = document.getElementById('surface').value; 
var orderNumber = document.getElementById('orderNumber').value; 
var responsible = document.getElementById('responsible').value; 
var date = document.getElementById('dateds').value 

var events = [ 
    { Title: "Equipment: " + equip + "\nSize: " + size + date + 
    "\nRequired on Surface: " + surface + "\nWork Order Number: " + orderNumber + "\nResponsible: " + responsible, Date: new Date(date) }, 
    { Title: "Dinner", Date: new Date("02/25/2011") }, 
    { Title: "Meeting with manager", Date: new Date("03/01/2011") } 
]; 


$("#datepicker").datepicker({ 

    beforeShowDay: function(date) { 
     var result = [true, '', null]; 
     var matching = $.grep(events, function(event) { 
      return event.Date.valueOf() === date.valueOf(); 
     }); 

     if (matching.length) { 
      result = [true, 'highlight', null]; 
     } 
     return result; 
    }, 
    onSelect: function(dateText) { 
     var date, 
      selectedDate = new Date(dateText), 
      i = 0, 
      event = null; 

     while (i < events.length && !event) { 
      date = events[i].Date; 

      if (selectedDate.valueOf() === date.valueOf()) { 
       event = events[i]; 
      } 
      i++; 
     } 
     if (event) { 
      alert(event.Title); 
     } 
    } 
}); 

});//]]> 



var dated = $("#datepicker").datepicker("getDate"); 

function alerter() {alert (dated)} 
function dog() {div.setDate("+2d");} 


function submit(form){ 
var equip1 = form.equipment.value; 
var size1 = form.size.value; 
var surface1 = form.surface.value; 
var orderNumber1 = form.orderNumber.value; 
var responsible1 = form.responsible.value; 
var inputDate1 = form.inputDate.value 

var events = [ 
    { Title: "Equipment: " + equip1 + "\nSize: " + size1 + 
    "\nRequired on Surface: " + surface1 + "\nWork Order Number: " + orderNumber1 + "\nResponsible: " + responsible1, Date: new Date(inputDate1) }, 
    { Title: "Dinner", Date: new Date("05/25/2013") }, 
    { Title: "Meeting with manager", Date: new Date("03/01/2011") } 
]; 
} 
</script> 


</head> 
<body> 
    <FORM> 
    Equipment: <input type='text' id='equipment' /> <br /> 
    Size: <input type='text' id='size' /> <br /> 
    Required on Surface: <input type='checkbox' id='surface' /> <br /> 
    Work Order Number: <input type='text' id='orderNumber' /> <br /> 
    Responsible: <input type='text' id='responsible' /> <br /> 
    Date: <input type="text" id="dateds" /></p> 

    <div id="datepicker"></div> 
    <button type="button" onclick="alerter()">Add Lowering Event</button><br> 
    </FORM> 
</body> 


</html> 
+1

我认为datepicker必须应用于文本(或日期)输入字段,而不是DIV。 – Barmar 2013-05-09 14:58:09

+2

@Barmar - 请参阅http://jqueryui.com/datepicker/#inline。 “显示嵌入在页面中的日期选择器而不是叠加层,只需在div上调用.datepicker()而不是输入。” – j08691 2013-05-09 17:13:18

+0

为什么你包括'jQuery'和'jQuery UI'两个版本?另外,'normalize.css'传统上首先被加载,因为它是一种重置样式表。 – Mathletics 2013-05-09 19:46:06

回答

1

$("div").datepicker$("div.selector").datepicker不仅应是$("#datepicker").datepicker。第一个会在您的页面上为每个DIV附加日期选择器,第二个不起作用,因为您没有类selector的DIV。

通常情况下,日期选择器会附加到表单中的<input>元素,因此当您提交表单时,将会提交选定的日期。既然你把它在一个DIV,你可以一个<input type="hidden">元素添加到窗体:

<input type="hidden" name="date" id="date"> 

,并添加以下选项的日期选择器:

altField: "date", 

使用命名与匿名函数主要是一个文体选择。如果仅在一个地方使用短功能,例如onSelect选项或AJAX回调,则通常将其作为匿名函数内联。

+0

当我切换$(“div”)。datepicker与$(“#datepicker”)我的日历消失。和切换$(“div.selector”)仍然给我不确定,每当我调用这样的代码VAR = =(“#datepicker”)。datepicker(“getDate”);函数alerter(){alert(dated)}
user2343714 2013-05-09 19:32:02

+0

对不起,我对此很不好,我对html不太舒服。我的班上很久以前就读过高中。我不知道你的意思是添加一个,因为我不明白onSelect如何链接到隐藏的输入并允许我提取日期。 – user2343714 2013-05-09 19:36:33

+0

在选择器之后,你仍然需要'.datepicker(...)',我解决了我的答案。如果用户还没有选择日期,'getDate'将返回undefined,除非您设置了默认日期。 – Barmar 2013-05-09 19:37:13