Cancel the form being submitted in javascript

posted in: Uncategorized | 0

johnWeeGo.jpgI come across this trick every so often so thought it best to write it down. In the AJAX world it seems this is more and more common, why would i ever want to post back again?

If you have a textbox in a form and when the user presses enter you don’t want them submitting that form you can cancel the event in javascript.

Within your MS AJAX js class set a flag to indicate if this object was the one that submitted, then we hook the form submit event and cancel if so.

 


//in your init
this._keyPressHandler = Function.createDelegate(this, this._onKeyPress);
this._VerifySubmitHandler = Function.createDelegate(this, this.VerifySubmit);
        
$addHandler(this._Textbox, 'keypress', this._keyPressHandler);           
$addHandler($get("Form"),"submit", this._VerifySubmitHandler);
////

//two events handlers
    _onKeyPress : function(e) {
        if (e.charCode==13)
        {
            this._submitted = true;
            //do whatever you need to do on enter
        }
    }, 

    VerifySubmit: function(e)
    {
        if (this._submitted)
        {
            this._submitted = false;
            if (e && e.preventDefault) //FF
            {
                e.preventDefault();
            }
            return false; //IE
        }
    },