クリックしたときにテーブル セルを変更する次の jQuery があります。これにより、ユーザーはテキスト入力を入力し、入力時に通常の状態に戻ることができます<td>
。
HTML-
<td class="delivered">
{{ title.delivery_date|date:"Y-m-d" }}
</td>
JS -
$("td.delivered").click(function () {
if ($(this).find('#inp').length == 0) {
var before = $(this).text();
var title_id = $(this).parent().attr('id');
var status_type = 'delivery-date'
$(this).html($("<input/>", {
id: 'inp',
style: 'width:70px;',
placeholder: 'YYYY-MM-DD',
change: function () {
selectdone(this, title_id, status_type);
}
}));
$("#inp").focus();
$('#inp').val(before);
}
});
上記の js は機能しますが、これには癖があります。
入力要素が70pxなのに、文字幅が200pxくらいでスクロールしてるように見える。これにより、placeholder
最初に td をクリックした後に が表示されなくなります。カーソルが常に左にフラッシュされ、テキスト入力が常に70pxになるようにするにはどうすればよいですか。
更新:POST
これは、テキストを入力して:経由で送信した後の入力の様子ですu'status': [u'\t\t\t\t\t\t\t\t\t\t\t2012-01-01']
。つまり、テキスト入力で11個のタブから始まるようです!なぜこれが発生し、どうすればこれを取り除くことができますか?