如果用户没有选择任何选项,默认值在select标签中不起作用?

时间:2017-09-24 03:26:27

标签: javascript jquery html5

您好, 我试图将语言选择的默认值设置为英语,其值为1.因此,如果用户没有选择语言选项,它应该仍为1,以便我可以运行我的算法。但是当我测试它并没有选择任何值时,它不会使它成为默认值。

我决定检查语言选项的数据类型,它是一个字符串类型,但即使我做if(isNaN(languageOption)){languageOption =" 1&#34 ;;},它&# 39; s仍然无法正常工作。谁能告诉我为什么?

感谢您的帮助

<body>
<div>
    <a href="javascript:location.reload(true)"><img src="image/MindScribe-cursive.png" id="cursive"></a>
</div>
<div id="container">
    <img src="image/MindScribe-zebra.png" id="ImageEnterVariables" alt="Hello, I'm Stripes">
    <img src="image/MindScribe-zebra2.png" id="onlyShowZebraImage" alt="Hello, I'm Stripes" style=display:none>

    <select id="languageSelection" style=display:none>
        <option value="">Choose a language</option>
        <option value="1">English (American)</option>
        <option value="2">Chinese (Mandarin)</option>
        <option value="3">Japanese</option>
    </select>
<script>
    var languageOption = parseInt($("#languageSelection").val() );
    $("#languageSelection").on("change", function(){

        if(isNaN(languageOption)){ languageOption = "1";}
        languageOption = $(this).val();

        console.log("langugeOption is " + languageOption);

        console.log("Language changed to: "+ $(this).find("option").eq( $(this)[0].selectedIndex ).text() + " (Index: "+languageOption+")" );

        console.log(typeof(languageOption));  // Outputs string

        endingArr = [];
        runThroughArr = [];
        randomArr = [];

        if(languageOption === "1"){
            console.log("English");
            for(i = 0; i < intro_playList.length; i++){
                if(intro_playList[i].stage === "ending"){ endingArr.push(i); }
                if(intro_playList[i].runThrough){ runThroughArr.push(i); }
                if(intro_playList[i].random){ randomArr.push(i); }
            }
        }
        else if (languageOption === "2"){
            console.log("Chinese");
            for(i = 0; i < intro_playList_chi.length; i++){
                if(intro_playList_chi[i].stage === "ending"){ endingArr.push(i); }
                if(intro_playList_chi[i].runThrough){ runThroughArr.push(i); }
                if(intro_playList_chi[i].random){ randomArr.push(i); }
            }
        }

    });
</script>

</body>

2 个答案:

答案 0 :(得分:0)

为什么你要做这些用于制作英语默认值的东西?您只需将选定的属性添加到您要默认的选项即可。

<select id="languageSelection" style=display:none>
        <option value="">Choose a language</option>
        <option value="1" selected>English (American)</option>
        <option value="2">Chinese (Mandarin)</option>
        <option value="3">Japanese</option>
</select>

在您的脚本中,您可以应用以下逻辑将默认选项设置为1:

 languageOption = $(this).val();
 if(languageOption==""){
    languageOption="1";
 }

&#13;
&#13;
$("#languageSelection").on("change", function(){

        var languageOption = $(this).val();
	      if(languageOption.length==0){
          languageOption=1;
        }
        console.log("langugeOption is " + languageOption);

        console.log("Language changed to: "+ $(this).find("option").eq( $(this)[0].selectedIndex ).text() + " (Index: "+languageOption+")" );

        console.log(typeof(languageOption));  // Outputs string

        endingArr = [];
        runThroughArr = [];
        randomArr = [];

        if(languageOption === "1"){
            console.log("English");
            for(i = 0; i < intro_playList.length; i++){
                if(intro_playList[i].stage === "ending"){ endingArr.push(i); }
                if(intro_playList[i].runThrough){ runThroughArr.push(i); }
                if(intro_playList[i].random){ randomArr.push(i); }
            }
        }
        else if (languageOption === "2"){
            console.log("Chinese");
            for(i = 0; i < intro_playList_chi.length; i++){
                if(intro_playList_chi[i].stage === "ending"){ endingArr.push(i); }
                if(intro_playList_chi[i].runThrough){ runThroughArr.push(i); }
                if(intro_playList_chi[i].random){ randomArr.push(i); }
            }
        }

    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="languageSelection" >
        <option value="">Choose a language</option>
        <option value="1">English (American)</option>
        <option value="2">Chinese (Mandarin)</option>
        <option value="3">Japanese</option>
    </select>
&#13;
&#13;
&#13;

以上代码适用于我,如果选择语言,则会给我1。

答案 1 :(得分:0)

如果您需要&#34;选择语言&#34;要显示,将其值设置为1(与英语相同):

<option value="1">Choose a language</option>