javascript the confirm alert function is not functioning properly when paired with a disabled button in an ASP.NET WebForms application

My webform has a submit button that triggers a javascript function. Here is the code for the button:

<asp:Button ID="btnSub" runat="server" Text="submit" OnClientClick="return processSub();" />

The javascript function being called looks like this:

function processSub(){

    var btnId = '<%= btnSub.ClientID %>'

    var userSelection = confirm('Are you sure you wish to submit');
    if (userSelection){
         document.getElementById(btnId).setAttribute("disabled","disabled");
         return true;
    } else {
         return false;
    }
}

I am facing an issue where the submission doesn't happen when I try to disable the submit button using

document.getElementById(btnId).setAttribute("disabled","disabled");
. However, it works fine when I comment out this line within the IF block.

Can anyone clarify why this happens and provide a solution on how to make it work? Please note that I am not using any JavaScript library and prefer not to use one. Thank you.

Answer №1

Although no OnClick event is specified for the button, it will still trigger a form submission when clicked. The button's disabled state can be set using javascript, but this will be reset as soon as the form is submitted.

If you wish to disable the button after user confirmation, you can do so in the code behind.

<asp:Button ID="btnSub" runat="server" Text="submit" OnClientClick="return processSub();" 
    OnClick="btnSub_Click" />

protected void btnSub_Click(object sender, EventArgs e)
{
    //disable the button
    btnSub.Enabled = false;
}

Answer №2

Execute JavaScript to submit the form prior to returning in an if statement

document.forms[0].submit();

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Updating a deeply nested value with React's setState

Dealing with a deeply nested object in my React state has been quite the challenge. The task at hand is to modify a value within a child node. Fortunately, I have already identified the path leading to the node that needs updating and I am utilizing helper ...

Send the ID of the checkbox to a PHP file using AJAX

Is it possible to generate a network graph by selecting checkboxes? When I choose one or more checkboxes and click the button, I expect to see a network graph with the selected checkboxes. It almost works, but when I select multiple checkboxes, only one ...

What is the equivalent of defining conditional string types in Typescript similar to flow?

type UpsertMode = | 'add' | 'update' | 'delete'; interface IUpsertMembers { mode: UpsertMode; } const MagicButton = ({ mode: UpsertMode }) => { return ( <button>{UpsertMode}</button> ); } const Upse ...

Is it necessary to have n_ if I've already set up lodash?

After some research, I came across a recommendation to install lodash. However, upon visiting the lodash website, they suggest that for NodeJS, n_ should be installed instead. Are both necessary? Is one more comprehensive than the other? Do I even need eit ...

Angular BehaviorSubject is failing to emit the next value

I am facing an issue with a service that uses a Behavior subject which is not triggering the next() function. Upon checking, I can see that the method is being called as the response is logged in the console. errorSubject = new BehaviorSubject<any> ...

experiencing deployment issues with the openai npm package

I encountered an unexpected error in my backend while trying to deploy. This error only started appearing after I installed the openai package. Although my node version is 20, which should support node:fs, it seems that the module 'node:fs' cann ...

Floating Action Button combined with a Material UI ListItem

I am working on creating a basic list with a listItem that includes a button. The code I currently have is as follows: import React from "react"; import darkBaseTheme from 'material-ui/styles/baseThemes/darkBaseTheme'; import MuiThemeProvider ...

Guide to converting a string into an undefined type

I've been working on parsing a csv file: let lines = csvData.split(/\r\n|\n/); let headers = lines[0].split(','); for (let i = 1; i < lines.length; i++) { let values = lines[i].split(','); ...

Vertically align the left div in the center, while maintaining the standard alignment of the right div

I have been experimenting with Bootstrap 4 and attempting to implement the Vertical alignment feature as outlined on the webpage: https://getbootstrap.com/docs/4.0/layout/grid/ Despite reviewing my code multiple times, I am unable to identify the mistake ...

Optimal method for simultaneously updating multiple states and triggering a function after all state updates are completed [React Functional component]

I find myself in a situation where I have several controlled input components that are storing data in states. Whenever I modify one of the dropdown inputs, it also affects three other states and initiates an API call. How can I make sure that all three ...

Slide in parts gradually by scrolling up and down, avoiding sudden appearance all at once

I have implemented a slider on my website using jQuery functions. For scrolling down, the following code snippet is used: jQuery("#downClick").click(function() { jQuery("html, body").animate({ scrollTop: jQuery(document).height() }, "slow"); ...

Using Typescript, you can specify an array of type <T> within an object

Having a background in JS, I am currently exploring TS. My goal is to create an object with a single field, which is an array of strings, while ensuring strong typing. let container = { items: ['Item 1'] } container.items[0] = 3; // This is i ...

What is the proper way to invoke a function with parameters within a .then function in a JavaScript promise statement?

I have made the decision to transition my AWS lambda functions, which were originally written in node.js using callbacks, to now use promises. As part of this process, I am enclosing all of my functions within the handler with the handler code. In an effor ...

Executing Python and JavaScript with Selenium

I am encountering an issue while trying to run this code. The error message indicates that I may be missing a closing ) or using an illegal character. It seems like there might be confusion with inserting arguments where they are not needed. Could someon ...

My database images are not appearing, instead, blank bootstrap cards are displayed on the

I have set up an online store website with nodejs, express, and mongodb where I have stored image URLs, titles, descriptions in my database. However, the issue is that there are 2 black cards appearing before each image on the webpage. Below is the code sn ...

How can MakeStyles be used to change the fill color in an SVG file by targeting specific IDs with Selectors?

Consider the following scenario: Contents of SVG file: <g transform="translate(...)" fill="#FFFFFF" id="Circle"> <path ........ ></path> </g> <g transform="translate(...)" fill="#FFFFFF" id="Circle"> &l ...

Synchronization-free API and callback functions

I am in need of utilizing an asynchronous service. My current approach involves sending data to this service using PHP and CURL, as well as receiving data from a URL provided by the service. How can I effectively respond or wait for feedback from this serv ...

Types with conditions but no common parameter

I am looking to define my props as either type A or B. For instance export default function App() { type Checkbox = { type: "checkbox"; checked: boolean; }; type Dropdown = { type: "dropdown"; options: Array<an ...

Executing a function in the view/template with Angular 2+

Whenever a function is called in the view of an Angular component, it seems to be executed repeatedly. A typical example of this scenario can be seen below: nightclub.component.ts import { Component } from '@angular/core'; @Component({ selec ...

Converting array elements to strings when extracting in JSON with JavaScript

I am working with a Json document that looks like this: { "_id": "13fee4aad95c7f822c0b559bd8d09fb0", "_rev": "5-336dea3680af3e7ec0de29369be90b09", "attributeCollection": { "attributeArray": [ { "name": "Web Issue", "val ...