send POST after every time span in class=List is selected(clicked)

117 Views Asked by At

I trying to send POST if one of span is selected(clicked) in class=List Here is my code

  <script>

    $(function() {
//Another try
    $('.list').change(function(){
      alert("Work");
      $('#ExSearchForm').submit();
    });
    //first try
        $('#ExSearchForm').submit(function(e){
            e.preventDefault();
            $.ajax({
                url:'/search.asp',
                type:'POST',
                data:$('#ExSearchForm').serialize(),
                dataType:'text',
                success: function(response)
                {

                alert(response);
                }
            });

        });
    });

    </script>
     <form  id="ExSearchForm" name="ExSearchForm" >
                <div class="list">
                    <div class="nomination">Category</div>
                    <div class="name">
                        <label class="selected-cat">
                            <input onchange="$('#ExSearchForm').submit();" type="radio" name="Category" value="1" /><span>Audio<i>1</i></span>
                        </label>
                        <label class="selected-cat">
                            <input onclick="$('#ExSearchForm').submit();" type="radio" name="Category" value="2" /><span>Video<i>0</i></span>
                        </label>
                        <label class="selected-cat">
                            <input onclick="$('#ExSearchForm').submit();" type="radio" name="Category" value="3" /><span>Auto<i>10</i></span>
                        </label>
                    </div>
                    <div class="clear"></div>
                </div>
      </form>

But it not send any request to server, nothing happing, no submiting but alert is working If i set onchange="this.form.submit()" it submit form without catching by jquery into current page.

So how to send POST after every time span in class=List is selected(clicked) ?

1

There are 1 best solutions below

0
On BEST ANSWER

$('.list').change() ?

A DIV has no onchange event – this event type only applies to form fields only. To listen for changes on any form fields inside the .list, you have to expand the selector:

$('.list input, .list select, .list textarea').on( 'change', /* … */ );

Also, in most browsers, a submit-event can only be fired upon a form, if there is at least one submit-button (e.g. <input type="submit" value="Send"> or <button type="submit">Send</button>).