获取数组中选定的文本
我有一个下拉菜单和一个文本框。当用户选择下拉列表中的任何选项时,它会更改文本框中的文本。我的问题是,如何获取数组中的选定值并从数组中设置相应的文本?
我的代码如下所示:
<select type="text" name="pipe_size" id="pipe_size">
<option value="default_pipe_size" selected>PIPE SIZE</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="32">32</option>
<option value="40">40</option>
</select>
<input type="text" name="bdmm" id="bdmm" />
JQUERY:
$('#pipe_size').change(function() {
// update input box with the currently selected value
if ( $("#pipe_size option:selected").text() == "15") {
$('#bdmm').val("17.1");
}
if ( $("#pipe_size option:selected").text() == "20") {
$('#bdmm').val("27.1");
}
if ( $("#pipe_size option:selected").text() == "25") {
$('#bdmm').val("27.1");
}
if ( $("#pipe_size option:selected").text() == "32") {
$('#bdmm').val("37.1");
}
if ( $("#pipe_size option:selected").text() == "40") {
$('#bdmm').val("47.1");
}
});
我认为^可以制作此代码使用数组更高效、更干净。请问有什么指点吗?
I have a dropdown and a textbox. When the user selects any option in the dropdown, it changes the text in the textbox. My question is, how can I get the selected value in an array and set the corresponding text from an array?
I have the code up and running like this:
<select type="text" name="pipe_size" id="pipe_size">
<option value="default_pipe_size" selected>PIPE SIZE</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="32">32</option>
<option value="40">40</option>
</select>
<input type="text" name="bdmm" id="bdmm" />
JQUERY:
$('#pipe_size').change(function() {
// update input box with the currently selected value
if ( $("#pipe_size option:selected").text() == "15") {
$('#bdmm').val("17.1");
}
if ( $("#pipe_size option:selected").text() == "20") {
$('#bdmm').val("27.1");
}
if ( $("#pipe_size option:selected").text() == "25") {
$('#bdmm').val("27.1");
}
if ( $("#pipe_size option:selected").text() == "32") {
$('#bdmm').val("37.1");
}
if ( $("#pipe_size option:selected").text() == "40") {
$('#bdmm').val("47.1");
}
});
I think ^this code can be made more efficient and cleaner with the use of arrays. Any pointers, please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果这些值有些匹配,它可能会让你的生活变得更好:
HTML:
JS:
Fiddle: http://jsfiddle。网/manianator/qRqLt/
It might would make your life much better if the values matched somewhat:
HTML:
JS:
Fiddle: http://jsfiddle.net/maniator/qRqLt/
我假设您需要将“pipe_size”发送到服务器,否则您可以将数据存储在 value 属性中。如果是这样,您可以采取一些方法。从最不理想到最理想:
1)使用 switch case:
2)使用对象:
3)使用数据元素并将映射存储在数组中:
I'm assuming you need to send "pipe_size" to the server, otherwise you can just store the data in the value attribute. If so, there are a few approaches you could take. From least to most desirable:
1) Use a switch case:
2) Use an object:
3) Use data elements and store the mapping in the array:
为什么不将值保存到变量中,而使用 switch 语句呢?
Why don't you save the value into a variable, and use a switch statement instead?
您可以使用查找对象 -
那么您的更改代码可以简化为 -
You could use a look-up object -
Then your change code could be simplified to -