Javascript 如何对下拉列表进行简单验证?
我用HTML制作了一个“问答表单”,并将其与Javascript链接起来,这样人们就可以用特定的数字来回答。以下是我的代码示例: HTML代码:Javascript 如何对下拉列表进行简单验证?,javascript,html,validation,drop-down-menu,Javascript,Html,Validation,Drop Down Menu,我用HTML制作了一个“问答表单”,并将其与Javascript链接起来,这样人们就可以用特定的数字来回答。以下是我的代码示例: HTML代码: <p>Question</p> <p>1)"ans1"</p> <p>2)"ans2"</p> <p>3)"ans3"</p> <p>4)"ans4"</p> <form method="POST" name="CorrectF
<p>Question</p>
<p>1)"ans1"</p>
<p>2)"ans2"</p>
<p>3)"ans3"</p>
<p>4)"ans4"</p>
<form method="POST" name="CorrectForm"
onSubmit="checkCorrect(document.CorrectForm.numCorrect.value); return false;">
<input type="text" name="numCorrect" id="numCorrect">
<input type="Submit" name="Submit">
</form>
现在我想让人们从下拉列表中选择答案。所以我想在按下提交按钮时检查答案
所以,HTML看起来像
<p>Question</p>
<select>
<option value="ans1">ans1</option>
<option value="ans2">ans2</option>
<option value="ans3">ans3</option>
<option value="ans4">ans4</option>
</select>
问题
ans1
ans2
ans3
ans4
所以现在我需要的是JS部分
如果这个问题以前被问过一百万次,我很抱歉,因为我试图寻找一个解决方案,但没有找到
提前谢谢 您可以创建一个验证完整表单的函数,而不是创建一个只验证输入编号的函数。请参见此示例:
<!DOCTYPE html>
<html>
<head>
<title>Validation test</title>
<script>
var rightAnswer = 3;
function checkAnswer(form) {
if (parseInt(form.elements["answer"].value) == rightAnswer) {
alert("Correct");
} else {
alert("Wrong");
}
return false;
}
</script>
</head>
<body>
<form method="POST" onsubmit="checkAnswer(this); return false;">
<p>Question:</p>
<select name="answer">
<option value="1">ans1</option>
<option value="2">ans2</option>
<option value="3">ans3</option>
<option value="4">ans4</option>
</select>
<input type="submit">
</form>
</body>
</html>
验证试验
var rightAnswer=3;
功能检查答案(表格){
if(parseInt(form.elements[“answer”].value)==rightAnswer){
警惕(“正确”);
}否则{
警惕(“错误”);
}
返回false;
}
问题:
ans1
ans2
ans3
ans4
一些评论:
- 在事件
的代码中,您可以使用keyworkonsubmit=“
引用表单本身,并将其传递给this
函数checkAnswer()
- 当变量
指向HTML表单时,可以通过form
检索其字段,其中form.elements[“NAME”]
与HTML标记中的属性NAME
匹配。这适用于所有控件,NAME=”“
,选择
,按钮
,但输入
除外
- 您可能仍然需要将
转换为整数,以便能够将其与正确答案进行比较,这就是值
的原因parseInt
- 这种方法可以推广:你想做的事情相当于表单验证,你可以在网上找到大量的库和教程,详细解释如何做;如果你知道要寻找什么,也有很多答案
您应该更改标记和标题,它们会产生误导,问题本质上是关于HTML e JS中的表单验证,不涉及jQuery。感谢您的回答。我理解您键入的所有内容(除了对我来说是新的parseInt),并将其应用于我的原始脚本,但它似乎不起作用。当我试图提交答案时,它没有响应。我仔细地复制并粘贴了你的答案,我所做的只是将“正确答案”改为1。我检查了错误,但没有发现任何错误。那么我现在能做什么呢?@Kirito我在答案中添加了完整的HTML代码,适用于Firefox 30、Chrome 35、Safari 7.0.5。好的,我找到了答案。它只是与一些其他的代码相互作用,把事情搞砸了。再次感谢。
<!DOCTYPE html>
<html>
<head>
<title>Validation test</title>
<script>
var rightAnswer = 3;
function checkAnswer(form) {
if (parseInt(form.elements["answer"].value) == rightAnswer) {
alert("Correct");
} else {
alert("Wrong");
}
return false;
}
</script>
</head>
<body>
<form method="POST" onsubmit="checkAnswer(this); return false;">
<p>Question:</p>
<select name="answer">
<option value="1">ans1</option>
<option value="2">ans2</option>
<option value="3">ans3</option>
<option value="4">ans4</option>
</select>
<input type="submit">
</form>
</body>
</html>