1

我正在运行 Django 1.5 并使用 Dajax/Dajaxice 异步更新表单。表单只是对象的描述(文本字段)。该字段的值始终显示并显示为可编辑的文本区域。呈现表单时,我使用 javascript 将 onchange 事件分配给 html 表单:

$('#form_id').change(function(event) {
                Dajaxice.appname.description_form(Dajax.process,
                    {'form':$('#form').serialize(true),
                    'pk':$('#parent_div').attr('pk')}
                    )
            });

这适用于除空白输入之外的任何类型的输入。如果 textarea 不包含任何文本,似乎不会触发事件;我该怎么做才能允许空白输入触发事件?

这不仅仅是 onchange 事件,我尝试分配具有相同结果的其他事件,例如 keyup() 等(除了空白输入外,功能齐全)。

澄清:

没有输入,我的意思是''(没有字符)

' ' 的输入仍然会触发。

4

2 回答 2

1

我记得之前曾短暂地遇到过这个问题,但是一些任意更改解决了它。

在最简单的形式中,jQuery 的 .change() 函数应该为空输入触发。看这个简单的例子,通过在输入中输入文本,清除它并再次跳出:simple .change() demo

$('#search').change(function(event){alert('Changed!');});

如果您可以为您的代码提供更多上下文,也许我们可以找出导致 .change() 失败的原因。

于 2015-05-01T19:01:21.973 回答
0

据我所知,“输入”不是您要使用的事件。由于“输入”类似于“更改”,当您的字符串接近 0 个字符时,它往往会产生不好的结果,请改用 keyup
试试这个:

$('#form_id').bind('keyup', function (e) {    
     Dajaxice.appname.description_form(Dajax.process,
        {'form':$('#form').serialize(true),
           'pk':$('#parent_div').attr('pk')}
     )
});
于 2013-07-02T20:30:27.120 回答