我正在尝试重定向到基于所选选项的页面,但是使用了javascript验证。
我有这样的表格:
<form action="verify.php" method="post">
<label for="class_year" class="inner_text">Year Range</label>
<select id="class_year" name="year">
<option value="a">50</option>
<option value="b">60</option>
<option value="c">70</option>
<option value="c">80</option>
<option value="c">90</option>
</select>
<label for="dob" class="inner_text">Date of Birth (YY-MM-DD)</label>
<input name="dob" type="text" class="false" id="dob" maxlength="10">
</form>
现在我有这个verify.php文件,如果你选择1950,那么可以重定向到a.html:
<?php
header('Location: '.$_POST['year'].'.php');
?>
我想要做的是验证访问者选择的内容。例如,如果您在文本框中写入51-02-28,则表示您必须选择1950,因此您将被重定向到a.html;如果你写的是例如61-02-28,但是你选择了1950,那么你就无法提交表格了。如果您在41-02-29之间编写任何其他内容,那么您也会收到提醒,并且不会提交表单。前2个选项重定向到a.html和b.html,最后3个选项重定向到同一页面c.html。
总之,我需要只验证文本框中的第一个数字。我不知道如何用javascript做到这一点!
我赞成任何和所有评论,谢谢。
答案 0 :(得分:1)
您可以使用普通的javascript继续进行验证,而重定向则可以使用类似这样的内容而不是PHP重定向
您的代码应该是这样的:
<form action="verify.php" method="post" id="mainForm">
<label for="class_year" class="inner_text">Year Range</label>
<select id="class_year" name="year">
<option value="50">50</option>
<option value="60">60</option>
<option value="70">70</option>
<option value="80">80</option>
<option value="90">90</option>
</select>
<label for="dob" class="inner_text">Date of Birth (YY-MM-DD)</label>
<input name="dob" type="text" class="false" id="dob" maxlength="10">
</form>
<script type="text/javascript">
$("#mainForm").submit(function(){
var yearVal = $("#dob").val().split("-")[0];
var redirectObj= [
['50','a'],
['60','b'],
['70','c'],
['80','c'],
['90','c']
];
if(parseInt(yearVal)>parseInt($("#class_year").val()) && parseInt(yearVal)<(parseInt($("#class_year").val())+10))
{
var redirectPage = "";
redirectObj.forEach(function(entry) {
if(parseInt(entry[0])==(Math.round(parseInt(yearVal)/10))*10)
{
redirectPage = entry[1];
}
});
window.location = redirectPage+".php";
}
else
{
alert("you have entered invalid value");
return false;
}
});
如果您想将其重定向到文本框的第一个字母,可以使用类似
的内容window.location = $("#dob").val().charAt(0)+".php";
您可以在http://jsfiddle.net/amanchhabra1990/Uy78a/
查看工作代码如果这有助于您,请告诉我。