having a slight problem with an ASP.net page of mine. If a user were to double click on a submit button it will write to the database twice (i.e. carry out the 'onclick' method on the imagebutton twice)
How can I make it so that if a user clicks on the imagebutton, just the imagebutton is disabled?
I've tried:
<asp:ImageButton
runat=server
ID=VerifyStepContinue
ImageUrl=image src
ToolTip=Go
TabIndex=98
CausesValidation=true
OnClick=methodName
OnClientClick=this.disabled = true; />
But this OnClientClick property completely stops the page from being submitted! Any help?
Sorry, yes, I do have Validation controls... hence the icky problem.
Working on this still, up to this point now:
ASP code:
<asp:TextBox ID=hidToken runat=server Visible=False Enabled=False></asp:TextBox>
...
<asp:ImageButton runat=server ID=InputStepContinue Name=InputStepContinue ImageUrl=imagesrc ToolTip=Go TabIndex=98 CausesValidation=true OnClick=SubmitMethod OnClientClick=document.getElementById('InputStepContinue').style.visibility='hidden'; />
C# code:
private Random
random = new Random();
protected void Page_Load(object sender, EventArgs e)
{
//Use a Token to make sure it has only been clicked once.
if (Page.IsPostBack)
{
if (double.Parse(hidToken.Text) == ((double)Session[NextToken]))
{
InputMethod();
}
else
{
// double click
}
}
double next = random.Next();
hidToken.Text = next + ;
Session[NextToken] = next;
Actually... this nearly works. The double click problem is pretty much fixed (yay!) The image still isn't hidden though.