获取HTML select元素的预选值

时间:2017-12-26 21:01:21

标签: javascript jquery html html-select

或者通过示例,无论用户是否更改了它,如何通过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;
    }
})

5 个答案:

答案 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()获取初始值:

&#13;
&#13;
#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;
&#13;
&#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');