根据所选选项重定向到3页并进行验证

时间:2014-01-27 19:06:29

标签: javascript php jquery forms

我正在尝试重定向到基于所选选项的页面,但是使用了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做到这一点!

我赞成任何和所有评论,谢谢。

1 个答案:

答案 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/

查看工作代码

如果这有助于您,请告诉我。