我有一个非常简单的表单,其中包含一个包含3个选项和文本框的下拉列表。 我需要检查两个输入的值,以便将用户引导到适当的页面。当我用鼠标点击" Go"它可以正常工作按钮。然而点击进入重新加载页面! 在添加下拉列表之前代码正常工作..它导致问题以某种方式发生!
<select form="semester">
<option value="Fall">Fall</option>
<option value="Spring">Spring</option>
<option value="Summer">Summer</option>
</select>
<input type="text" name="year" maxlength="4" size="30" onsubmit= " if(event.keyCode == 13) document.getElementById('btnSearch').click()" />
<input type="button" id="btnSearch" onclick="check(this.form)" value="Go!"/>
<script language="javascript">
var e = document.getElementById("semester");
var ee = e.options[e.selectedIndex].value;
function check(form)
{
if(ee == "Fall" || "fall"&& form.year.value == "2013")
{ window.location="semester/fall13/categories.html";
}
else
{
alert("Not Available!")/*displays error message*/
}
}
</script>
答案 0 :(得分:2)
这是更正,
<select id="semester" name="semester">
onsubmit应该适用于表单,而不是输入
答案 1 :(得分:2)
完全按照AvinashW的说法行事:
<select id="semester" name="semester">
要阻止表单提交,请执行以下操作:
onsubmit="return false;"
这是你犯的另一个错误:
if(ee == "Fall" || "fall"&& form.year.value == "2013")
应该是
if(ee == "Fall" || ee == "fall" && form.year.value == "2013")
如果你不介意,我创建了一个页面,其中包含您需要的功能,但是我的代码:
<html>
<body>
<div>
<select id="semester">
<option value="Fall">Fall</option>
<option value="Spring">Spring</option>
<option value="Summer">Summer</option>
</select>
<br/>
<input type="text" id="year" maxlength="4" size="30" onkeypress= " if(event.keyCode == 13) document.getElementById('btnSearch').click()" />
<button id="btnSearch" onClick="Go()">Go</button>
</div>
<script>
function GetSelectedItem()
{
var e = document.getElementById("semester");
strSel=e.options[e.selectedIndex].value;
return strSel;
}
function Go(){
selected = GetSelectedItem();
if( (selected=="Fall"||selected=="fall") && document.getElementById('year').value=='2013'){
window.location="semester/fall13/categories.html";
}else{
alert("Not available!");
}
}
</script>
</body>
</html>