1

我的日期选择器是用简单的代码工作的。在插入新行后使用它<tr>在单击中不起作用。但我可以在第一次点击时得到它的对象<input/>。这在单击其他时有效,然后input再次尝试单击以显示日期选择器的弹出窗口。

我的 jQuery:

$('#myTable tr:last').after("<tr><td align='center'style='background-color:"+rcolor+"'>"+rowCount+
            "</td><td><input style='width:300px !important;' name='onvan' /></td>"+
            "<td><input style='width:100px !important;' name='' id='startdate'/></td>"+
            "<td><input style='width:100px !important;' name='' id='enddate'/></td>"+
            "<td><input style='width:100px !important;' name='' id='' /></td>"+
            "<td>"+
            "<select name='visible'>"+
            "<option></option>"+
            "<option></option>"+
            "<option></option>"+
            "<option></option>"+
            "<option></option>"+
            "<option></option>"+
            "</select></td>"+
            "<td><select name='visible'><option value='1' >فعال</option><option value='0' >غیرفعال</option></select>"+
            "&nbsp;&nbsp;<span id='saveToDb'><a href='#'>ذخیره</a></span>&nbsp;<span id='cancelToSave'><a href='#'>لفو</a></span></td>"+
            "</tr>");

数据选择器:

$(function() {
    $('#startdate').live('click', function() {
        // alert( $(this));

             $(this).datepicker({
                changeMonth: true,
                changeYear: true,
                showButtonPanel: true,
                dateFormat: 'yy/mm/dd',
                minDate: '-3y',
                maxDate: '+3y',
                regional: 'fa',
                onSelect: function (dateText, inst) {
                         var date = new JalaliDate(inst['selectedYear'], inst['selectedMonth'], inst['selectedDay']).getGregorianDate();
                          var month= (date.getMonth()+1).toString(); 
                          if (month.length <2) month='0'+ month; 

                          var day= date.getDate().toString(); 
                          if (day.length <2) day ='0'+ day;
                          $('#taTarikh').val(date.getFullYear() + '-' + month + '-' + day);
                          // alert($('#taTarikh').val());
                }
             });    
          });                 
});
4

1 回答 1

1

随着.live('click',function(){});您通过第一次单击来实施日期选择器,这就是它在第二次单击时开始工作的原因。

您应该在创建对象后实现 datepicker..

$(function() {
    $('#myTable tr:last').after("<tr><td align='center'style='background-color:yellow'>3</td><td><input style='width:300px !important;' name='onvan' /></td>" + "<td><input style='width:100px !important;' name='' id='startdate'/></td>" + "<td><input style='width:100px !important;' name='' id='enddate'/></td>" + "<td><input style='width:100px !important;' name='' id='' /></td>" + "<td>" + "<select name='visible'>" + "<option></option>" + "<option></option>" + "<option></option>" + "<option></option>" + "<option></option>" + "<option></option>" + "</select></td>" + "<td><select name='visible'><option value='1' >فعال</option><option value='0' >غیرفعال</option></select>" + "&nbsp;&nbsp;<span id='saveToDb'><a href='#'>ذخیره</a></span>&nbsp;<span id='cancelToSave'><a href='#'>لفو</a></span></td>" + "</tr>");
    $("#startdate").datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'yy/mm/dd',
        minDate: '-3y',
        maxDate: '+3y',
        regional: 'fa',
        onSelect: function(dateText, inst) {
            var date = new JalaliDate(inst['selectedYear'], inst['selectedMonth'], inst['selectedDay']).getGregorianDate();
            var month = (date.getMonth() + 1).toString();
            if (month.length < 2) month = '0' + month;
            var day = date.getDate().toString();
            if (day.length < 2) day = '0' + day;
            $('#taTarikh').val(date.getFullYear() + '-' + month + '-' + day);
            // alert($('#taTarikh').val());
        }
    });
});

演示:http: //jsfiddle.net/BerkerYuceer/pBQFF/14/

于 2012-12-11T10:12:00.263 回答