3

私はAJAXを使用するHTMLプログラムを持っています。AJAXのresponseTextはDIVに出力されます。そのDIVの中にはすでに存在し<input tpe="text value="" id="fechaD" />ます。入力がクリックされたときに呼び出されるJQuery関数があります。明らかに、その入力はAJAXのresponseTextに置き換えられるので、responseTextに再度追加しました。問題は、JQueryが機能しなくなったことです。

jQery<script type="text/javascript">関数を使用して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関数が2つあるようです。$(function(){}); $(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 に答える