2010-04-14 64 views
0

我在我的页面中使用了方块jQuery插件来显示fullCalendar插件的clickEvent上的表单。 它工作正常,我唯一的问题是,boxy中的窗体首次打开对话框时弹出确认对话框,当用户单击“确定”时,它将再次提交表单,从而生成2个事件我的日历和2个条目在我的数据库中。Boxy提交表格

我的代码看起来像这里面fullCalendar:

dayClick: function(date, allDay, jsEvent, view) { 
var day=""+date.getDate(); 
if(day.length==1){ 
day="0"+day; 
} 
var year=date.getFullYear();  
var month=date.getMonth()+1; 
var month=""+month; 
if(month.length==1){ 
month="0"+month; 
} 
var defaultdate=""+year+"-"+month+"-"+day+" 00:00:00"; 
var ele = document.getElementById("myform"); 
new Boxy(ele,{title: "Add Task", modal: true}); 
document.getElementById("title").value=""; 
document.getElementById("description").value=""; 
document.getElementById("startdate").value=""+defaultdate; 
document.getElementById("enddate").value=""+defaultdate; 

} 

我也使用验证的形式字段:

$.validator.addMethod(
    "datetime", 
    function(value, element) { 
    // put your own logic here, this is just a (crappy) example 
     return value.match(/^([0-9]{4})-([0-1][0-9])-([0-3][0-9])\s([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$/); 
     }, 
    "Please enter a date in the format YYYY-mm-dd hh:MM:ss" 
); 

var validator=$("#myform").validate({ 
    onsubmit:true, 
    rules: { 
     title: { 
     required: true 
     }, 
     startdate: { 
     required: true, 
     datetime: true 
     }, 
     enddate: { 
     required: true, 
     datetime: true 
     } 
    }, 
    submitHandler: function(form) { 
    //this function renders a new event and makes a call to a php script that inserts it into the db 
     addTask(form); 
    }  
    }); 

而且形式如下:

<form id ='myform'> 
<table border='1' width='100%'> 
<tr><td align='right'>Title:</td><td align='left'><input id='title' name='title' size='30'/></td></tr> 
<tr><td align='right'>Description:</td><td align='left'><textarea id='description' name='description' rows='4' cols='30'></textarea></td></tr> 
<tr><td align='right'>Start Date:</td><td align='left'><input id='startdate' name='startdate' size='30'/></td></tr> 
<tr><td align='right'>End Date:</td><td align='left'><input id='enddate' name='enddate' size='30' /></td></tr> 
<tr><td colspan='2' align='right'><input type='submit' value='Add' /></td></tr> 
</table> 
</form> 

回答

0

好暂时我通过简单地删除boxy.js中的确认对话框来使用“脏修复”,以便f它在被调用时不会做任何事情。不漂亮,但它现在工作。