その場でラベルとテキストフィールドを作成し、テキストフィールドの日付ピッカーも含める必要があります。私はこのようなものが必要です:
<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タグがありません。そのため、本文に追加する関数を呼び出しても機能しません。
このような何かがうまくいくでしょう:
//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();
Input要素がラベル内にある場合は、ラベルでfor
属性を使用する必要がないことに注意してください。したがって、次のいずれかを使用します。
<label><input id="x1"></label>
<label for="x1"></label> <input id="x1">
表示するには、作成したラベルを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();
ラベルをどこに挿入しようとしていますか?ページの先頭に表示したい場合は、次のようにできます。
var $label = $("<label>").attr('for', "from");
$label.html('Date: <input type="text" id="from" name="from" value="">');
$(function() {
$('body').prepend($label);
$(':input', $label).datepicker();
});
1)ID属性の最後に終了の引用符がありません。
2)ラベル自体を何にも付けていません。