Jquery Timedatepicker在动态表单上无法正常工作

我已经成功修改了我在这里找到的代码,它使用javascript创建了新的文本框字段。

我正在使用timepicker与datepicker jquery插件进行平滑的日期和时间选择。 我有个问题。 时间戳在加载页面后正常工作,但在添加其他输入字段后,时间戳停止工作。

这是html代码:

        

这是脚本

  $(document).ready(function(){ $('.timepicker').datetimepicker(); }); $('#start').click(function(){ $(".timepicker").datetimepicker("destroy"); $(".timepicker").datetimepicker(); }); var num=0; function addField(){ num++; //1 if(num>4){ num--; } makefields(); } function rmField(){ num--; if(num<0){ num++; } makefields(); } function makefields(){ var fields=""; for(var o=0;o<=num;o++){ fields+="

"; fields+="

"; } fields+="
"; if(num!=3){fields+="";} if(num>0){fields+="";} fields+=""; document.getElementById("fields").innerHTML=fields; }

我也在尝试在我的数据库中添加新的输入值,有关如何做的任何想法? 对不起,我还是网络开发的新手。 希望有一天会变得更好。

编辑:这是我已经修改了一段时间的PHP代码。 我希望新创建的字段能够顺利地插入到我的数据库中。 我将要添加的字段的最大值设置为4.我一直在尝试通过创建一组准备好在我的数据库表中捕获它们的字段来动态插入字段(datefrom1,dateto1,datefrom2,dateto2等等,但我可以不能让它发挥作用。

另外,是否可以通过代码在我的SQL中添加一串字段? 就像你有2个重复项一样,程序会在某个db表中创建2个新字段? 如果可能的话,我更愿意。 我一直在寻找网络中的所有地方,但找不到解决方案。

 $mysql_host = 'changed'; // put change for confidentiality $mysql_user = 'changed'; $mysql_pass = 'changed'; $mysql_db = 'changed'; if(!mysql_connect($mysql_host, $mysql_user, $mysql_pass) || !mysql_select_db($mysql_db)) { die(mysql_error()); } $sets=mysql_real_escape_string($_REQUEST["num"]); for($loop=0;$loop 

添加后,您需要为新添加的元素初始化插件。 它不会初始化运行代码时不存在的元素。

改变这个:

 document.getElementById("fields").innerHTML=fields; 

至:

 $('#fields').html( fields).find('.timepicker').datetimepicker(); 

数据库问题尚不清楚

对于这些动态forms,最好使用客户端模板作为动态位。 这样你就不必对它们进行两次编码(一次在js中再次在html中)

见http://jsfiddle.net/HmCPd/1/

你的addField函数应该是这样的:

 function addField() { // get html from the template var html = $('#fieldTemplate').html(); /* make a new dom element (need to trim whitespace or jquery won't parse the template properly */ var $newField = $($.trim(html)); // insert the new field and make it a datepicker $('#fieldsContainer') .append($newField) .find('input') .datepicker(); } 

这与你想做的非常相似。 只需确保在将新节点插入dom后绑定任何ui类(如datetimepicker())。

至于将数据保存到数据库中,一般的想法是,您希望提供您的字段等…唯一的名称属性,您的服务器端代码将作为后期参数接收。 将这些参数收集到SQL插入语句中并对数据库运行它。 只是确保你避免SQL注入。 请参阅如何在PHP中阻止SQL注入? 有关这方面的更多信息。