tags:

views:

44

answers:

3

Hello friends.

this is the code i am using for my Html.BeginForm..

in else blcok my return false is not working after alert mesage also its going to my controler?

thanks is this right?

i tried like this

if i do like this on submit its doing nothing..

thanks

+1  A: 

Check this: http://api.jquery.com/event.preventDefault/

you should probably do something like this:

$('#PbtnSubmit').click(function(event) {
 /// code 

 event.preventDefault();
});
Toader Mihai Claudiu
+4  A: 

You want to prevent the form from submitting on special conditions?

If so, you should first probably avoid using click and rather use the submit event which supports keyboard actions. After changing the event to submit, you can use event.preventDefault() which prevents the form submit.

So your code should probably look like this (note: untested):

$('<your form selector>').bind('submit', function(event) {
                $('#PricingEditExceptions input[name=PMchk]').each(function() {
                    if ($("#PricingEditExceptions input:checkbox:checked").length > 0) {
                        var checked = $('#PricingEditExceptions input[type=checkbox]:checked');
                        var PMstrIDs = checked.map(function() {
                            return $(this).val();
                        }).get().join(',');
                        $('#1_exceptiontypes').attr('value', exceptiontypes)
                        $('#1_PMstrIDs').attr('value', PMstrIDs);
                    } else {
                        alert("Please select atleast one exception");
                        event.preventDefault(); // Stop the submit here!
                    }
                });
            });

More info here: .bind() jQuery API (it's quite far down the page, so do an in-page search for .bind("submit"). More here as well: .submit() and .preventDefault()

mqchen
+1 to using preventDefault instead of `return false`. I'd also suggest putting it before the `alert()`, since it blocks execution until the user presses okay.
Dave Ward
+1  A: 

If you have an error (uncaught exception) in your submit handler, you won't end up returning false and stopping the event propagation. If you switch to using the event.preventDefault() method as suggested by the other responders and you are still having trouble, then you should call event.preventDefault right at the beginning of your submit handler so that you know that the page won't submit on you before you get a chance to debug your error.

lambacck