16

その場でラベルとテキスト フィールドを作成し、テキスト フィールドの日付ピッカーも含める必要があります。私はこのようなものが必要です:

<label for="from">From </label> <input type="text" id="from" name="from" />

jQueryで次のようなことを試しました:

var label = $("<label>").attr('for', "from");   
                    label.html('Date: ' +
                        '<input type="text" id="from name="from" value="">');

                    $(function() {
                        $("#from").datepicker();
                    }); 

これはどういうわけか、ラベルとテキスト フィールドを作成しません。何が欠けているのかわかりません。

編集

より正確には、ポートレットでこれを使用しており、jsp ページに body タグがありません。そのため、関数を呼び出して body に追加しても、そうではありません。

4

4 に答える 4

26

次のようなものが機能します。

//Create the label element
var $label = $("<label>").text('Date:');
//Create the input element
var $input = $('<input type="text">').attr({id: 'from', name: 'from'});

//Insert the input into the label
$input.appendTo($label);
//Insert the label into the DOM - replace body with the required position
$('body').append($label);

//applying datepicker on input
input.datepicker();

jsFiddle デモ

for入力要素がその中にある場合は、ラベルの属性を使用する必要がないことに注意してください。したがって、次のいずれかを使用します。

<label><input id="x1"></label>

<label for="x1"></label> <input id="x1">
于 2012-05-01T16:47:45.880 に答える
4

表示するには、作成したラベルを DOM にアタッチする必要があります。

var label = $("<label>").attr('for', "from");
    label.html('Date: ' +
      '<input type="text" id="from name="from" value="">');

label.appendTo('body');

// set up datepicker
label.find('#from').datepicker();
于 2012-05-01T16:45:00.433 に答える
1

ラベルをどこに挿入しようとしていますか? ページの先頭に配置したい場合は、次のようにすることができます。

var $label = $("<label>").attr('for', "from");   

$label.html('Date: <input type="text" id="from" name="from" value="">');

$(function() {
    $('body').prepend($label);

    $(':input', $label).datepicker();
});
于 2012-05-01T16:45:33.510 に答える
0

1) ID 属性の末尾に終了引用符がありません。
2) ラベル自体を何にも追加しませんでした。

于 2012-05-01T16:45:38.277 に答える