user2544162
user2544162

Reputation: 11

Jquery events not firing on blank input

I'm running Django 1.5 and using Dajax/Dajaxice to asynchronously update a form. The form is just a description of an object (text feild). The value of the field is always displayed and is shown as an editable textarea. When the form is rendered, i assign an onchange event to the html form with javascript:

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

This works with any kind of input except blank input. It seems like the event is not triggered if the textarea does not contain any text; what can I do to allow blank input to trigger the event?

It is not just the onchange event, I tried assigning others such as keyup() etc. with the same results (fully functional except for blank input).

Clarification:

by no input, i mean '' (no characters)

an input of ' ' triggers still.

Upvotes: 1

Views: 2829

Answers (2)

dr_faulk
dr_faulk

Reputation: 31

I remember encountering this before briefly, but some arbitrary changed resolved it.

In its simplest form, jQuery's .change() function should fire for a null input. See this simple example, by entering text in the input, clearing it and tabbing out again: simple .change() demo

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

If you could provide more context to your code, maybe we could figure out what's causing .change() to fail.

Upvotes: 1

Alessandro Minoccheri
Alessandro Minoccheri

Reputation: 35973

as far as I know, "input" is not the event you want to use. Since "input" is analogous to "change", it tends to produce a bad result when your string approaches 0 chars, use keyup instead
Try this:

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

Upvotes: 0

Related Questions