0

在 ajax 调用之前,我为日期选择器编写的代码是:

<script type="text/javascript">
    $(function() {
        $("#birthdate").focus(function() {
            $(this).datepicker().datepicker( "show" )
        });
    });
    $(function() {
        $("#joindate").focus(function() {
            $(this).datepicker().datepicker( "show" )
        });
    });
    </script>           

此函数在 onfocus 事件后调用:

<tr>
              <td align="left">
                <input type="text" id="birthdate"  name="birthdate"  onfocus="$('#birthdate').datepicker({changeMonth: true,changeYear: true,dateFormat: 'dd/mm/yy',defaultDate: '-20y -1m -247d',yearRange: '-50:+0'});"   tabindex="14"  style="width:300px; "   value="<? if($get_emp!='0')echo $employee_birth; ?>" /><span style="color:#F00;">*</span></td>                                       

    <td>
        <input type="text" name="joindate" id="joindate" onfocus="$('#joindate').datepicker({changeMonth: true,changeYear: true,dateFormat: 'dd/mm/yy',defaultDate: '-3y -1m -247d',yearRange: '-50:+0'});"  tabindex="15" style="width:300px; " value="<? if($get_emp!='0')echo $employee_join; ?>"/><span style="color:#F00;">*</span>
        </td>
     </tr>

在ajax调用之后我调用了相同的代码,但它在第一次点击时没有打开,但是它在第二次点击时打开?请帮我解决这个问题............

4

2 回答 2

0

使用这个 javascript。您只需要初始化datepicker()一次

$(function() {
    $('#birthdate').datepicker({changeMonth: true,changeYear: true,dateFormat: 'dd/mm/yy',defaultDate: '-20y -1m -247d',yearRange: '-50:+0'});
    $("#joindate").datepicker({changeMonth: true,changeYear: true,dateFormat: 'dd/mm/yy',defaultDate: '-3y -1m -247d',yearRange: '-50:+0'});
    $("#birthdate, #joindate").focus(function() {
        $(this).datepicker( "show" )
    });
});

我从输入标签中删除了焦点属性:

<input type="text" id="birthdate"  name="birthdate" tabindex="14"  style="width:300px; "  value="<? if($get_emp!='0')echo $employee_birth; ?>" /><span style="color:#F00;">*</span></td>                                       

<input type="text" name="joindate" id="joindate" "  tabindex="15" style="width:300px; " value="<? if($get_emp!='0')echo $employee_join; ?>"/><span style="color:#F00;">*</span>
于 2012-07-31T13:17:20.057 回答
0

尝试这样的事情:

$(document).ready(function(){
    $("#joindate").datepicker({
        // Options and methods here
    });
    $("#joindate").focus(function(){
          $("#joindate").datepicker("show");
    });
    $("#joindate").focus();
});

如果您想在日期的实际点击事件上发布日期,您还可以在“onSelect”事件上执行 $.post(),而不必将其绑定到表单提交。

于 2012-07-31T13:22:55.693 回答