0

我有一个表格,我希望用户能够即时更新(但不能使用可编辑表格插件,因为我有其他值需要随表格一起发送)。

一旦他们单击单元格,我想在表格单元格中显示一个表单。我已经允许他们单击单元格(并显示表单),但他们无法单击新文本框,因为然后他们再次单击了表格单元格。

这是我的jQuery:

$(function(){
// clicking on a TD cell
$('td').click(function(){
    // check that it's a valid cell
    if($(this).attr('employee').length > 0){;
        // is it an active shift?
        if($(this).attr('activeshift') == 1){
            // yes
        }else{
            // no - we show the form
            var form = '<form class="add_shift" id="add_shift"> \
                    <input type="text" name="shift" /> \
                    <input type="hidden" name="employee" value="' + $(this).attr('employee') + '" /> \
                    <input type="hidden" name="day" value="' + $(this).attr('day') + '" /> \
                    <input type="hidden" name="current_week" value="' + $(this).attr('current_week') + '" /> \
                    <br /> \
                    <small>Ex: 09:00 - 17:00 or 22:00 - 06:00</small> \
                </form>';
            // update content
            $(this).html(form);
        }
    }
});

});

这是一个示例单元格:

<td employee="10" day="3" current_week=1" activeshift=""></td>

如何允许用户单击单元格内的输入?

如果他们点击远离单元格,有什么方法可以删除内容?

提前致谢。

4

2 回答 2

1

使用 jquery .off()

$('td').click(function(){
   $(this).off('click');

http://jsfiddle.net/fG35u/

于 2013-07-22T16:14:19.320 回答
0

您需要使用 stopPropagation 方法:

$('td').click(function(e){
e.stopPropagation()
// rest of your code here

这应该可以解决问题

于 2013-07-22T15:56:59.253 回答