Multiple ways to change the SELECT options in an HTML drop-down box

Multiple ways to change the SELECT options in an HTML drop-down box
After the form is submitted, the returned HTML page is re-rendered, and neither the value nor the selectedIndex attribute of the SELECT control can make the drop-down box retain the state before the form is submitted.

Copy code
The code is as follows:

<SELECT id="idState" style="width:150" name="state" selectedIndex="$!{state}">
<OPTION value="">All</OPTION>
<OPTION value="1">Pass</OPTION>
<OPTION value="2">Not passed</OPTION>
<OPTION value="3">Pending</OPTION>
</SELECT>

A temporary solution is to add a script at the end of the vm file to assign a value to the drop-down box :

Copy code
The code is as follows:

<script>
$('#idState').val('$!{state}');
</script>

Another solution is to set a default selection :

Copy code
The code is as follows:

<SELECT id="idState" style="width:150" name="state" value="$!{state}">
<OPTION value="">All</OPTION>
<OPTION value="1">Pass</OPTION>
<OPTION value="2" SELECTED>Not passed</OPTION>
<OPTION value="3">Pending</OPTION>
</SELECT>

The VTL way of writing is :

Copy code
The code is as follows:

<SELECT id="idState" style="width:150" name="state" value="$!{state}">
<OPTION value="">All</OPTION>
<OPTION #if($!{state} == 1) SELECTED #end value="1">Pass</OPTION>
<OPTION #if($!{state} == 2) SELECTED #end value="2">Not passed</OPTION>
<OPTION #if($!{state} == 3) SELECTED #end value="3">To be processed</OPTION>
</SELECT>

It should be noted here that when performing == comparison, Velocity distinguishes between types. If you compare with the strings "1", "2", and "3", you will always get false.
Comparison issues in velocity <br />For velocity, comparisons, especially those involving inequality comparisons (greater than or less than), are difficult to implement. Now I want to display the file size on the page in categories (Bytes, MB, GB), which involves the problem of comparing filesize sizes. Is there a better way to achieve this?
For example, the following code:

Copy code
The code is as follows:

#if ($filesize > 1024 && $filesize < 1048567)
#set($ksize = $filesize%1024)
<div class="mlt">File Size: $ksize KB
#elseif ($filesize > 1048567 && $filesize < 1073731824)
#set($msize=$filesize%1048567)
<div class="mlt">File Size: $msize MB
#elseif ($filesize > 1073731824)
#($gsize=$filesize%1073731824)
<div class="mlt">File Size: $gsize GB
#else
<div class="mlt">File Size: $filesize Bytes
#end


Copy code
The code is as follows:

<PRE class=html name="code"><SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif"><SPAN style="WHITE-SPACE: normal">
</SPAN></SPAN></PRE>
<PRE></PRE>
<PRE></PRE>
<PRE></PRE>

<<:  Pagination Examples and Good Practices

>>:  How to successfully retrieve VMware Esxi root password after forgetting it

Recommend

4 ways to implement routing transition effects in Vue

Vue router transitions are a quick and easy way t...

Native JavaScript to achieve the effect of carousel

This article shares the specific code for JavaScr...

A collection of possible problems when migrating sqlite3 to mysql

Brief description Suitable for readers: Mobile de...

js to achieve cool fireworks effect

This article shares the specific code for using j...

Solution to the long delay of MySQL database master-slave replication

Preface The delay of MySQL master-slave replicati...

Summary of Seven Basic XHTML Coding Rules

1. All tags must have a corresponding end tag Prev...

MySQL foreign key constraint (FOREIGN KEY) case explanation

MySQL foreign key constraint (FOREIGN KEY) is a s...

Detailed explanation of basic operation commands for Linux network settings

Table of contents View network configuration View...

How to use & and nohup in the background of Linux

When we work in a terminal or console, we may not...

VUE implements a Flappy Bird game sample code

Flappy Bird is a very simple little game that eve...

Several commonly used single-page application website sharing

CSS3Please Take a look at this website yourself, ...

Detailed description of mysql replace into usage

The replace statement is generally similar to ins...

How to dynamically add modules to Nginx

Written in front Often, after we install Nginx ba...

JavaScript web page entry-level development detailed explanation

Part 3: ❤Three ways to overlook backend data rece...