0

動的に生成されたテキストフィールドがあります(次のコードを使用):

echo "<div><table width='100%'><tr>
         <td>
             Date: <input type='text' class='span2' id='currDate'>
         </td><td rowspan='2'></td></tr></table>";

このフィールドは、ユーザーがボタンを押すと生成されます。このボタンはjavascriptにリンクしています。

$('#receipts button').live('click', function(){
        var id = this.id;
        $.ajax({
            type: "post", url: "receipt-stock.php", data: "production_detail_id="+id,
            success: function(data) {
                $('.modal-body').html(data);
                $('#new_receipt').modal('show');
                var myDate = new Date();
                var prettyDate = myDate.getDate()+'-' +(myDate.getMonth()+1)+'-'+myDate.getFullYear();
                $("#currDate").val(prettyDate);
                $('#currDate').datepicker({ dateFormat: 'dd-mm-yy' });
            }
        });
    });

javascriptからわかるように、上記のコードのテキストフィールドを含むモーダルを表示しています。の値を現在の日付に設定している部分を除いて、すべて正常#currDateに機能します。テキストフィールドには、フォーカスがあるときに日付ピッカーが表示されるかどうかにかかわらず、何も表示されません。

ただし、アラートを使用すると、テキストフィールドに必要な値があることがわかりましたが、表示されません。

4

2 に答える 2

1

問題は、実行した後、有効なHTMLではない.modal()IDを持つ2つの要素があることだと思います。#currDateページ全体を見ないと、はっきりとは言えませんが、実際にこの問題をかなり目にしました。jQueryは最初のIDを見つけ、それが値セットを取得している要素です。

正確な修正は、残りのコードを見ずに言うのは難しいです。を呼び出す前に、currDate要素の値を設定してみてください.modal()。currDateをクラスまたは一意のIDに変更する方法がある場合は、それが役立つ場合があります。または、必要なコードをのようなものに変更できる場合もあります$('#new_reciept #currDate').val(prettyDate);

于 2012-04-26T21:29:49.610 に答える
0

前のポスターが言うように.datepicker()、日付を消しているのは呼び出しです。defaultDate: new Date()上記のコードを削除して、必要な結果を得ることができるパラメーターを追加できます。

また、入力要素が閉じられることはあり <input type='text' class='span2' id='currDate' >ません<input type='text' class='span2' id='currDate' />

于 2012-04-26T20:58:44.603 に答える