或者通过示例,无论用户是否更改了它,如何通过JavaScript或jQuery检索“c”?
<select id="select-menu">
<option value="a">A</option>
<option value="b">B</option>
<option value="c" selected>C</option>
<option value="d">D</option>
</select>
我尝试了以下操作,但是,它返回当前所选菜单的值。我想我可以采用类似的方法在页面加载时运行并保存值,但是期望有一种更“合适”的方法。
$('#select-menu > option').each(function(i){
if(this.selected) {
console.log(this.value)
$("#submit").val(this.value);
return false;
}
})
答案 0 :(得分:2)
没有更好的方法。 select是用户可修改的。
如果您想保留原始值,可以在加载时保存:
$(document).ready(function() {
var initialValue = $("#select-menu").val();
});
您也可以将其写入隐藏的输入中:
<input type="hidden" name="initial-select-menu" value="c">
这种方式的好处是价值将与表格的其余部分一起提交。在某些情况下可能更可取。
或者您可以在data
属性中填充初始值:
<select id="select-menu" data-initial="c">
<option value="a">A</option>
<option value="b">B</option>
<option value="c" selected>C</option>
<option value="d">D</option>
</select>
答案 1 :(得分:2)
使用jQuery .attr()获取初始值:
#include <openssl/sha.h>
#include <stdio.h>
char *calc_sha512(char *data) {
SHA512_CTX ctx;
char *md = malloc(sizeof(char)*(SHA512_DIGEST_LENGTH+1));
SHA512_Init(&ctx);
SHA512_Update(&ctx, data, strlen(data));
SHA512_Final(md, &ctx);
md[SHA512_DIGEST_LENGTH] = '\0';
return md;
}
int main() {
printf("%s\n", calc_sha512("foo"));
return 1;
}
&#13;
function get_initial(){
$('#select-menu > option').each(function(i){
if($(this).attr('selected')) {
console.log('initial: ' + this.value)
}
if(this.selected) {
console.log('current: ' + this.value)
}
})
}
$('.initial').on('click', get_initial);
&#13;
答案 2 :(得分:1)
您可以将值保存在html5 data- *属性中:
<select id="select-menu" data-default="c">
并通过
获取$("#select-menu").attr("data-default");
答案 3 :(得分:0)
以下代码展示了与使用JavaScript从选择字段中获取值相关的各种示例。
工作代码段
const selectMenu = document.getElementById("select-menu");
var selectedIndex = selectMenu.options[selectMenu.selectedIndex].value;
/*Option 1*/
selectMenu.onchange = function() {
selectedIndex = selectMenu.options[selectMenu.selectedIndex].value;
}
/*Option 2*/
/*selectMenu.addEventListener("change", function(){
selectedIndex = selectMenu.options[selectMenu.selectedIndex].value;
})*/
/*Option 3*/
/*function updateSelectedIndex() {
selectedIndex = selectMenu.options[selectMenu.selectedIndex].value;
}*/
document.writeln(selectedIndex);
<!-- Option 3 -->
<!-- <select id="select-menu" onchange="updateSelectedIndex"> -->
<select id="select-menu">
<option value="a">A</option>
<option value="b">B</option>
<option value="c" selected>C</option>
<option value="d">D</option>
</select>
答案 4 :(得分:0)
在适当的情况下试试这个:
let preselectedOption = $(targetDropDown).find('option[selected]');
let currentOption = $(targetDropDown).find('option:selected');