Struggling to grasp the syntax, trying to invoke a JavaScript function using an input button

I'm really struggling to grasp the xhtml syntax involved in calling a function with an input button. Despite my efforts to find a clear explanation, this concept still eludes me.

Within the snippet of code from my book that I've been referencing, everything seems to work fine. However, there's one line that I just can't wrap my head around:

onclick="checkGrade(document.gradeForm.grade.value);"

As far as I understand it, gradeForm refers to the form itself, and then grade represents the switch statement? So, if I had another switch statement named foo within the checkGrades function, would I use Foo? Additionally, I'm unsure about the purpose of the document or value parameters within the onClick checkGrade function.

Any guidance on this matter would be greatly appreciated!

<script type="text/javascript">

function checkGrade(grade) {
    switch (grade.toUpperCase()) {
        case "A":
            window.alert("Your grade is excellent.")
            break;
        case "B":
            window.alert("Your grade is good.")
            break;
        case "C":
            window.alert("Your grade is fair.")
            break;
        case "D":
            window.alert("You are barely passing.")
            break;
        case "F":
            window.alert("You failed.")
            break;
        default: 
            window.alert("You did not enter a valid letter grade.");
            break;
    }
}
</script>


<p>Please enter your grade below:</p>
<form action="#" name="gradeForm">
    <input type="text" name="grade" />
    <input type="button" value="Check Grade" onclick="checkGrade(document.gradeForm.grade.value);" />
</form>

Answer №1

Incorrect, the term grade actually corresponds to the textbox input. The value from this input is passed into the function checkGrade. The switch statement evaluates the variable grade, which stores the value of the textbox.

A switch statement itself cannot be named. It operates based on the value provided in its argument.

The use of document references the HTML document, and the value represents the content within the textbox labeled as grade. Furthermore, it is advisable to avoid utilizing the onClick attribute in XHTML/HTML. Instead, opt for unobtrusive JavaScript by binding a handler to the button element. For additional information, it's recommended to explore the Document Object Model (DOM), particularly The DOM and Javascript.

May I inquire about the age of the book you are referencing?

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

Creating a progress bar with a circular indicator at the completion point

Looking to create a unique horizontal progress bar with a circle at the end using react js, similar to the image provided. Successfully implemented a custom "%" progress bar and now aiming to incorporate a circle with text inside at the end. To view the c ...

Is it possible to achieve a seamless change using show/hide jQuery functions when hovering over an

How can I achieve smooth transitions when using an image map to show a div on hover, similar to the functionality seen on this website: ? Below is my current JavaScript code: var mapObject = { hover : function(area, event) { var id = area.attr ...

Striking a balance between innovation and backward compatibility in the realm of Web Design/Development

Creating websites is my passion, and I enjoy optimizing them for various platforms, devices, and browsers. However, lately, I've been feeling frustrated. I'm tired of facing limitations in implementing my creative ideas due to outdated technolog ...

I am facing an issue with Lotties having a black background in my NextJS project. Is there a way to make them transparent

I am facing an issue with my LottieFiles (JSON) displaying a black background when imported into my NextJS project. Despite trying to set background='transparent' on both the Player and parent div, the problem persists. I made sure to export my ...

retrieve HTML content by its ID stored in a variable

In my JavaScript code, I have a variable named "value" that contains HTML data. I am trying to extract the data from a specific ID that is located within the element with ID #myDiv. var value="<div > <p class="">Hi <a href="/ ...

Type inference in TypeScript with transitivity

Consider this code snippet for illustration: function foo(t: "number"): number function foo(t: "string"): string function foo(t: "boolean"): boolean function foo(t: "number" | "string ...

Looking for guidance on where to find a functional code sample or comprehensive tutorial on working with ViewMetadata in Angular2

I am currently trying to understand the relationship between viewmetadata and the fundamental use of encapsulation: ViewEncapsulation, including ViewEncapsulation.Emulated and ViewEncapsulation.None. Here is a link for further information: https://angula ...

Node.js error message: Unable to load HTTP module

Recently starting with Node.js, I decided to install the latest version (4.2.1) on my Windows 7 PC. However, when trying to include the HTTP module by writing: var http = require("http"); I'm receiving an undefined error message. Can someone help me ...

What is the best way to extract the information from the checkbox in a MUI datatable?

I am struggling to transfer an array with checked values to another table in order to display only those values. How can I achieve this? I am relatively new to using react and I find it challenging to grasp how some of the functions and components work. I ...

Is the vertex count of a Geometry in Three.js increased when it is converted to a BufferGeometry?

Recently, I've been experimenting with the fromGeometry method to convert regular Geometry objects into BufferGeometry objects. To my surprise, I noticed that the number of vertices increases during this conversion process. For instance, consider the ...

Understanding the assignment and control flow mechanisms in JAVASCRIPT code

Can you explain how the following code snippet functions? It is a part of a JavaScript file. this.isTabSelected = function(tabToCheck) { return (this.tab === tabToCheck); } ...

Is the data missing in the initial request?

After creating a function that returns an object with mapped values, I encountered an issue. The second map is undefined the first time it runs, causing my vue.js component to display data from the first map but not the cutOff value. Strangely, when I re ...

Can you add a variable to a string once the string has already been formed?

Is there a way to change the quotes of a string from double or single quotes to backticks in JavaScript after it has already been defined? I need to be able to add variables into the string. I attempted using replace(), but it seems like the variable is n ...

JavaScript never forgets to validate the user input

Forgive me for my lack of experience, but I am new to this and seeking guidance. I am struggling to find a straightforward example on how to validate HTML input using JavaScript. Currently, I am working on a search function and need help in implementing ...

Conflicting Angular components: Sorting tables and dragging/dropping table rows

In the current project I'm working on, I've integrated both angular table-sort and angular drag-drop. However, I ran into an issue where dragging a row and attempting to drop it onto another row causes the table sort to forcefully rearrange the r ...

Ways to implement StackNavigator along with Redux?

Is there anyone who can assist me in integrating StackNavigator and Redux? It seems straightforward, but I'm encountering issues. index.ios.js import React from 'react' import { AppRegistry } from 'react-native' import { Provi ...

The animations in three.js have come to a standstill

Currently, I am working on a real-time game using three.js and websockets. The project has been running smoothly until recently when I encountered a hurdle. While implementing animations, I noticed that the animations for the opposing client on the web pag ...

Do overlay elements have to be positioned at the bottom of the HTML body every time?

As I delve into the world of JavaScript frameworks, one common trend I've noticed is that elements like dialogs, tooltips, and alerts usually appear at the end of the body tag. With my own implementation of these UI elements, I am determined to make ...

Perform an action when a button is clicked in a VueJs single-page application

How can I trigger the refreshMailList function when clicking on the mail-list component? This is my Vue instance with a custom mail-list component: Vue.component('mail-list', { props: ['inboxmail'], template: ` <div> ...

The CKEditor value is set to the result of the dropdown selection

I need to implement a dropdown feature on my form where the options correspond to titles of content in my database. Once an option is selected, I want the corresponding content to display in a CKEditor field. I'm attempting to achieve something simil ...