0

我有以下 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 可以工作,但是有一个怪癖。

即使输入元素是 70 像素,它似乎也像文本宽度为 200 像素左右一样滚动。这使得您placeholder在第一次单击 td 后无法看到。我将如何使光标始终向左齐平并且文本输入在任何方面都是 70px。

更新:POST这是输入文本并通过:发送后的样子u'status': [u'\t\t\t\t\t\t\t\t\t\t\t2012-01-01']。换句话说,它似乎从文本输入中的 11 个选项卡开始!为什么会发生这种情况,我将如何摆脱这种情况?

4

1 回答 1

1

You could wrap your input box in a div with width:70px;overflow:hidden so you're sure that you won't see any scrollbars.

于 2012-06-29T19:56:24.677 回答