开发者

return false is not working in my submit click

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

 $('#PbtnSubmit').click(function() {
            $('#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");
                    return false;
                }
            });
        });

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

 $('#PbtnSubmit').click(function() {
                $('#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('valu开发者_JAVA百科e', PMstrIDs);
                    } else {
                        alert("Please select atleast one exception");

                    }
                });
return false;
            });

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

thanks


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()


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

you should probably do something like this:

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

 event.preventDefault();
});


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.


Sometimes you have to clear previous event binding and then bind the event.

Using, jQuery, this would be something like

 $("#...").off('click');$("#...").click(function(){..});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜