从下拉菜单中获取的值,能否与字符串进行比较?

5
我只有这个,但是我无法从下拉菜单中获取任何值以便使用javascript与字符串进行比较。
    // JavaScript Document
var singleMulticontainer = document.getElementById("singleMultiContainer");
var singleMultiValue =  singleMultiContainer.options[singleMultiContainer.selectedIndex].value;
var nextButton = document.getElementById("nextButton");
var multipleSetWindow = "window.location='multiSet.html'"

if(singleMultiValue == "multi"){
    document.getElementById("nextButton").setAttribute("data-location", "multiSet.html");
}
else{
    alert("notworking");
}

下拉菜单是这样的:如何从单个或多个容器的选项中获取值?

<form id"suspendedProperties">
    <p><h4>Select Station:
    <select name="stationDropdown">
        <option value="50028000">Tanama</option>
        <option value="60008001">Example Riv1</option>
        <option value="60008002">Example Riv2</option>
        <option value="60008003">Example Riv3</option>
        <option value="60008004">Example Riv4</option>
     </select>
     </h4></p>

    <p>Select Sample Medium:
        <select name="sampleMediumDropdown">
          <option value="Wer">Wer</option>
          <option value="WSQ">WSQ</option>
        </select>
        </p>
    <p>Begin Date
        <input type="date"/>
     </p>
     <p>Hydrologic Event: <select name="hydroEvent">
                            <option value="1">Example 1</option>
                            <option value="2">Example 2</option>
                            <option value="3">Example 3</option>
                            <option value="4">Example 4</option>
                            <option value="5">Example 5</option>
                            <option value="6">Example 6</option>
                          </select>
</p>
<p>Add:<input type="number" size=""/> <select name="singleMultiContainer"><option value="single">Single container sample</option><option value="multi">Multiple sets container</option></select></p>
 <p>Analyses Requested:(Applies to all samples)<br/></p>
 <div id="analyses" >
 <input type="checkbox" name="analysis" value="C">Concentration</input> 
 <input type="checkbox" name="analysis" value="SF">Sand-fine break**</input>&nbsp;  
 <input type="checkbox" name="analysis" value="SA">Sand analysis**</input>  <br/>
 <input type="checkbox" name="analysis" value="T">Turbidity</input> 
 <input type="checkbox" name="analysis" value="LOI">Loss-on-ignition**</input>&nbsp;    
 <input type="checkbox" name="analysis" value="DS">Dissolve solids</input>  <br/>
 <input type="checkbox" name="analysis" value="SC">Specific conductance</input>                                     
 <input type="checkbox" name="analysis" value="Z">Full-size fractions**</input>
 </div>
<input type="button" value="Back" onClick="window.location='SED_WE.html'"/>
<input type="button" value="Next" onClick="window.location='SampleInfo.html'"/>
</form>

你想要比较哪些值? - Mohammad Areeb Siddiqui
这对您有帮助吗?http://jsfiddle.net/FnByB/ - Mohammad Areeb Siddiqui
你正在将元素分配给 singleMulticontainer,但在下一步中使用了变量 singleMultiContainer(大写的 C)。这使得代码运行时不清楚。如果它在用户选择值之前运行,那么你只会得到默认值。总体而言,问题不是很明确。你不能只是把你的代码丢出来,期望我们修复所有错误。 - Felix Kling
那么,如何获取该值已经在这里回答了,而对于比较,您必须使用其中的两个相等运算符之一。 - Felix Kling
显示剩余5条评论
1个回答

2

Fiddle

您忘记给选择器添加id。我添加了<select name="singleMultiContainer" id="singleMultiContainer">,尽管您在脚本中“寻找它”,但它没有id。
您还有一些拼写错误,我已经修复了我发现的,所以请检查这是否是您想要的内容。

HTML

<form id="suspendedProperties">
    <p>
        <h4>Select Station:
    <select name="stationDropdown">
        <option value="50028000">Tanama</option>
        <option value="60008001">Example Riv1</option>
        <option value="60008002">Example Riv2</option>
        <option value="60008003">Example Riv3</option>
        <option value="60008004">Example Riv4</option>
     </select>
     </h4>
    </p>
    <p>Select Sample Medium:
        <select name="sampleMediumDropdown">
            <option value="Wer">Wer</option>
            <option value="WSQ">WSQ</option>
        </select>
    </p>
    <p>Begin Date
        <input type="date" />
    </p>
    <p>Hydrologic Event:
        <select name="hydroEvent">
            <option value="1">Example 1</option>
            <option value="2">Example 2</option>
            <option value="3">Example 3</option>
            <option value="4">Example 4</option>
            <option value="5">Example 5</option>
            <option value="6">Example 6</option>
        </select>
    </p>
    <p>Add:
        <input type="number" size="" />
        <select name="singleMultiContainer" id="singleMultiContainer">
            <option value="single">Single container sample</option>
            <option value="multi">Multiple sets container</option>
        </select>
    </p>
    <p>Analyses Requested:(Applies to all samples)
        <br/>
    </p>
    <div id="analyses">
        <input type="checkbox" name="analysis" value="C">Concentration</input>
        <input type="checkbox" name="analysis" value="SF">Sand-fine break**</input>&nbsp;
        <input type="checkbox" name="analysis" value="SA">Sand analysis**</input>
        <br/>
        <input type="checkbox" name="analysis" value="T">Turbidity</input>
        <input type="checkbox" name="analysis" value="LOI">Loss-on-ignition**</input>&nbsp;
        <input type="checkbox" name="analysis" value="DS">Dissolve solids</input>
        <br/>
        <input type="checkbox" name="analysis" value="SC">Specific conductance</input>
        <input type="checkbox" name="analysis" value="Z">Full-size fractions**</input>
    </div>
    <input type="button" value="Back" onClick="window.location='SED_WE.html'" />
    <input type="button" value="Next" id="nextButton" onClick="window.location='SampleInfo.html'" />
</form>

JS

// JavaScript Document
var singleMultiContainer = document.getElementById("singleMultiContainer");
var singleMultiValue = singleMultiContainer.options[singleMultiContainer.selectedIndex].value;
var nextButton = document.getElementById("nextButton");
var multipleSetWindow = "window.location='multiSet.html'"

if (singleMultiValue == "multi") {
    document.getElementById("nextButton").setAttribute("onclick", "window.location='multiSet.html'");
} else {
    alert("notworking");
}

@Sergio,我已经修复了我的拼写错误,也修复了ID。谢谢你,它有点起作用了,但无论如何我还会深入研究我的代码,再次感谢你。 - Ch32k0
@Ch32k0,为什么说“有点工作”?你缺少什么? - Sergio
http://jsfiddle.net/gKXWr/ - @Ch32k0,但请检查并更改为multi,这将会给出另一个警报。 - Sergio
@Ch32k0,你想要发生什么行为? - Sergio
@Sergio 我希望当您选择使用多个容器时,下一页的链接立即更改为另一个链接。 - Ch32k0
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接