JSP 是否将选项框的值和键都作为参数发送?

enyaitl3  于 2022-12-07  发布在  其他
关注(0)|答案(7)|浏览(116)

我想在提交表单时同时发送选项框的值和键。我觉得这应该很简单,但我不确定该怎么做。下面是我的表单的一个片段,用来演示我所引用的内容:

<form name='form' onSubmit="return checkForm();" action="../servlet/AccountRequest">

<select name="type1">
   <option value="1">Option A</option>
   <option value="2">Option B</option>
</select>

<br/><input type="button" id="Submit" onclick="checkForm(this.form)" value="Request" />
<input type="reset" value="Cancel"/>
</form>

在正常情况下,如果我在下拉框中选择了“Option A”,我会发送值或“1”。但是,我实际上想发送选择的值和键,在本例中是“1”和“Option A”。
在我的例子中,我调用了一个checkForm()JavaScript函数来验证表单输入(还有其他字段,如First Name、Last Name、Email Address和Password),然后将参数转发给一个Java类(AccountRequest)。我确信有一种方法可以在单击“Request”按钮时将键存储为变量,只是不知道该怎么做。
任何帮助都将不胜感激!

ipakzgxi

ipakzgxi1#

您可以使用JSON表示数据:

<select name="type1">
 <option value="{'1':'Option A'}">Option A</option>
 <option value="{'2':'Option B'}">Option B</option>
</select>
ef1yzkbh

ef1yzkbh2#

这可能不是您所期望的方法,但是您可以将键/值对作为值发送,并在服务器端接收到它时对其进行解析。

<select name="type1">
   <option value="1,Option A">Option A</option>
   <option value="2,Option B">Option B</option>
</select>
1cosmwyk

1cosmwyk3#

在HTML中,这是不可能的:当存在时,由X1 M0 N1 X元素贡献的数据被 * 定义 * 为所选X1 M2 N1 X的X1 M1 N1 X属性(否则为所选X1 M3 N1 X元素的内容)。
在JavaScript中,一旦你决定了内容(描述中的“key”)应该如何传递,这就非常简单了。最简单的方法是,你可以把内容附加到value属性,在字符串之间用一些分隔符;那么您必须解析服务器端,但这也很简单。
然而,option元素的一个基本思想是,内容是用户界面中可见的字符串,用户可以理解,而value属性是机器可读的、易于处理的数据。服务器应该只需要来自value属性的数据;否则就存在需要修复的设计缺陷。

tzxcd3kk

tzxcd3kk4#

您可以加入下列程式码,在checkform函数中取得所选<option>标签的文字:

var select = document.getElementsByName("type1")[0]; // get select element - simpler if it has an ID because you can use the getElementById method
var options = select.getElementsByTagName("option"); // get all option tags within the select

for (i = 0; i < options.length; i++) { // iterate through all option tags
    if (options[i].value == select.value){ // if this option is selected
        var key = options[i].innerHTML; // store key of selected option here
    }
}

DEMO, which tells you the key that's selected

pgky5nke

pgky5nke5#

使用复合值,然后在服务器上解析它:

<option value="1_A">Option A</option>
kd3sttzy

kd3sttzy6#

您可以在隐藏输入类型的情况下发送值
1.-选择缺省值:

<input type="hidden" id="theValue" name="type1Value" value="Option A"/>

2.-将onChange函数添加到select中,该函数将更改以前隐藏值

<select id="type1" name="type1" onChange="updateValue()">
   <option value="1">Option A</option>
   <option value="2">Option B</option>
</select>

假设您使用的是jQuery:

function updateValue(){
   var value= $('#type1').find(":selected").text();
   $('#theValue').val(value);
}

因此select的值将在type 1Value变量中发送,EASY!!

llew8vvj

llew8vvj7#

使用React js
我想同时从选项中获取两个值,因此使用Split方法

var string = "0,1";
var array = string.split(",");
alert(array[0]);

我在选项上创建一个sting

const getKioskSelectedUsageType=(e)=>{
  let sl = e.target.value 
  let array = sl.split(",")
  console.log("check :- ",array[1] )

}

         <select
          id=""
          className="form-control"
          value={kioskSelect}
          aria-label="kioskSelect"
          name="kioskSelect"
          title="kioskSelect"
          onChange={(e) => getKioskSelectedUsageType(e)}
          style={{ color: "#495057" }}
          >

          <option value="">Select Kiosk</option>
          {kioskConfiData.map((item, i) => {
           return (
           <React.Fragment key={i}>
           
           <option value={`${item.kioskid},${item.language}`}>
                  {item.location}
         </option>
         </React.Fragment>
         );
         })}
         </select>

相关问题