单击按钮并根据复选框b中的设置值输出消息和打开新页面



我的页面上有4个下拉列表。我试图输出一条消息,然后点击提交按钮打开一个新页面。这是基于每个下拉列表的单个值为true的条件。每个检查列表的所有选项都为true。例如,50p=true,在下一个框中,每个列表的£2等于true,依此类推。

这是其中一个盒子的例子。其他3个框具有完全相同的名称,但只是具有不同的真值和假值

<input name="button" type="submit" class="main" id="button" value="Submit" onclick="submit()" />
<select name="select_box" size="1" class="main" id="select_box">
<option value="true">50p</option>
<option value="false">1p</option>
<option value="false" selected="selected">20p</option>
<option value="false">£2</option>
</select>

这就是我尝试分配变量的地方。我的逻辑是,如果我可以通过获取下拉列表的id将变量分配给它们的名称,我可以应用一个if语句,根据onclick函数为我提供所需的结果,因为选择框中有true和false值?当我运行这段代码时,无论选项如何,Javascript似乎只会确认并调用警报框,就好像那里没有其他代码一样。

var a=document.getElementById("select_box");
var b=document.getElementById("select_box2");
var c=document.getElementById("select_box3");
var d=document.getElementById("select_box4");
object.onclick=submit
if (a=true,b=true,c=true,d=true)
{
alert("Correct you have won press OK for your Reward!")
document.open("Reward.html");
}
else
{
alert("Not right Please try again!");
}

此外,我如何应用上述提交按钮来处理这些报表

我为代码前半部分顶部的糟糕编辑道歉,我不太确定如何编辑,所以其余的单词显示

在您的代码中,a持有实际的select元素,而您确实希望它持有select元素的当前值。所以改变

var a = document.getElementById("select_box");

到此:

var a = document.getElementById("select_box").value;

这将指定a为相关下拉列表的。只要确保你修复了你的比较:

if (a=true

应该是

if (a === 'true'

还要注意,将下拉列表的值设置为正确或错误

<option value="true">50p</option>
<option value="false">1p</option>
<option value="false" selected="selected">20p</option>
<option value="false">£2</option>

这将使您的服务器端代码很难处理用户实际选择的内容,因为该表单输入的唯一值将是true或false,如果是false,您将无法知道这三个false值中的哪一个是实际选择的。

你的value可以是任何东西,正确的用法是<option value="50p">50p</option>,那么当你使用时

if(document.getElementById('select_box').value=='50p'){警报("已选择50p");}

这将工作

首先,要获得选择框的值,需要执行以下操作:

var selectBox = document.getElementById("select_box");
var a = selectBox.options[selectBox.selectedIndex].value;

接下来,对于if语句,有几点是错误的。首先,您使用的是单等号而不是双等号进行比较。当选择框返回的值是字符串时,您还将它们与布尔值进行比较。最后,不能用逗号分隔条件句。您必须指定AND或or或其他什么。更改if语句,使其更像这样:

if (a == "true" && b == "true" && c == "true" && d == "true")


更新:以下是我认为您正在尝试做的一个示例:

<html>
<head>
    <script type="text/JavaScript">
        function submit()
        {
            // fill these in with the values for the correct answers
            var correctAnswers = new Array("50p", "50p", "50p", "50p");
            for (var i = 1; i <= 4; i++)
            {
                // if any of the values turn up incorrect, stop right there and go back. No need to check the rest of the values.
                if (document.getElementById("select_box"+ i).options[document.getElementById("select_box"+ i).selectedIndex].value != correctAnswers[i-1])
                {
                    alert("Not right, please try again!");
                    return;
                }
            }
            alert("Corect, you have won! Press OK for your reward!");
            document.getElementById("frmMainForm").submit();
        }
    </script>
</head>
<body>
    <form action="Reward.html" method="post" id="frmMainForm">
        <select name="select_box1" size="1" class="main" id="select_box">
            <option value="50p">50p</option>    <!-- use the actual value, not "true" or "false" -->
            <option value="1p">1p</option>
            <option value="20p" selected="selected">20p</option>
            <option value="£2">£2</option>
        </select>
        <select name="select_box2" size="1" class="main" id="select_box">
            <option value="50p">50p</option>
            <option value="1p">1p</option>
            <option value="20p" selected="selected">20p</option>
            <option value="£2">£2</option>
        </select>
        <select name="select_box3" size="1" class="main" id="select_box">
            <option value="50p">50p</option>
            <option value="1p">1p</option>
            <option value="20p" selected="selected">20p</option>
            <option value="£2">£2</option>
        </select>
        <select name="select_box4" size="1" class="main" id="select_box">
            <option value="50p">50p</option>
            <option value="1p">1p</option>
            <option value="20p" selected="selected">20p</option>
            <option value="£2">£2</option>
        </select>
        <input type="button" class="main" id="btnSubmit" onclick="submit()" value="Submit" />
    </form>
</body>
</html>

不确定这有多重要,但请记住,任何从浏览器窗口查看源代码的人都可以得到正确的答案。如果这对您来说是个问题,那么您应该将表单提交给服务器端(例如PHP、ASP、JSP等)脚本,以便为您检查值。

最新更新