3

我有一个使用 AJAX 的 HTML 程序。AJAX 的 responseText 将打印在 DIV 上。在那个 DIV 里面已经存在一个<input tpe="text value="" id="fechaD" />. 我有一个在单击输入时调用的 JQuery 函数。很明显,那个输入会被AJAX的responseText代替,所以我在responseText上又加了一遍。问题来了,现在 JQuery 不起作用。

我不知道<script type="text/javascript">带有jQery函数的是否应该在DIV之外,所以它不会被AJAX的响应替换,或者应该作为responseText再次添加。我已经尝试了两者并且不会工作。

我在没有使用 jQuery 的情况下尝试过这个并且它可以工作,所以我认为这应该与我在 jQuery 中的函数有关,但我的问题是我没有编写该函数,因为我对 jQuery 一无所知。

这是在 onclicked 中输入时起作用的 jQuery 函数:

(该函数查找 ID="fechaD" 并显示一个日历。当用户选择任何日期时,该日期将显示为输入的值。使用 AJAX 后,它不会检测到新的 ID="fechaD" 输入)。

    <script type="text/javascript">
        jQuery(function($){
            $.datepicker.regional['es'] = {
                monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
                dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
            };
            $.datepicker.setDefaults($.datepicker.regional['es']);
        });    
        $(document).ready(function() {
                $("#fechaD").datepicker();
        });
    </script>
4

2 回答 2

1

如果您替换#fechaD输入,则新输入将不再具有datepicker与之关联的实例。

要解决它,您可以:

  1. $('#fechaD').datepicker();替换后再次调用(创建一个新的 datepicker 实例);
  2. #fechaD输入移到要替换的区域之外(推荐)。
于 2012-08-13T17:30:46.333 回答
0

看起来你有两个 $(document).ready 函数。$(函数() { }); 与 $(document).ready 相同。jQuery(function($){}); 也是如此。

也许尝试将它们结合起来。

  <script type="text/javascript">  
            $(document).ready(function() {
                $.datepicker.regional['es'] = {
                    monthNames:   ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
                    dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
                };
                $.datepicker.setDefaults($.datepicker.regional['es']);

                $("#fechaD").datepicker();
            });
        </script>
于 2012-08-13T17:31:28.950 回答