JavaScript函数未返回任何布尔值,或者票证计算错误

JavaScript函数未返回任何布尔值,或者票证计算错误,javascript,html,Javascript,Html,我正在尝试完成javascript和HTML的在线作业。问题是: 预订车票页面–此页面将包含用户为预订火车票而输入的详细信息 感谢页面–在用户成功预订车票后显示感谢页面 票证的数量应该大于子项的数量(使用java脚本进行验证)。在警告框中提供一条错误消息,如“票证数量应大于子票证数量” ·显示日期和时间应为当前日期或未来日期。(使用java脚本进行验证)。在警报框中提供一条错误消息,如“显示日期和时间应为当前日期或未来日期” ·所有字段都是必填字段(应使用HTML5完成) ·票价应根据以下逻辑计

我正在尝试完成javascript和HTML的在线作业。问题是:

  • 预订车票页面–此页面将包含用户为预订火车票而输入的详细信息

  • 感谢页面–在用户成功预订车票后显示感谢页面

  • 票证的数量应该大于子项的数量(使用java脚本进行验证)。在警告框中提供一条错误消息,如“票证数量应大于子票证数量”

    ·显示日期和时间应为当前日期或未来日期。(使用java脚本进行验证)。在警报框中提供一条错误消息,如“显示日期和时间应为当前日期或未来日期”

    ·所有字段都是必填字段(应使用HTML5完成)

    ·票价应根据以下逻辑计算。(使用Java脚本进行计算)

    o票费=一张票的票价*#张票

    o假设一张票的票价是200美元

    ·儿童一张票的票价是100美元

    ·用户提交表单后,应计算车票费用,并在警告框中显示为“您的近似车票金额为印度卢比”

    计算票价的JavaScript方法应返回一个布尔值。

    例:票的数量:4张儿童票的数量:1那么票价是700美元

    发生以下错误:

    已正确提供所有输入,但票证计算不正确 错误或JavaScript方法未返回任何布尔值

    即使我从方法中返回了值,并且它正在计算预期的输出,即票数:4个儿童:1,那么票数将是700

    函数验证(){
    var noticets=document.getElementById(“票证”).value;
    var noChildrens=parseInt(document.getElementById(“childrens”).value);
    var值=document.getElementById(“showdate”).value;
    如果(注意事项<无儿童)
    {
    警告(“票证数量应大于儿童数量”);
    返回false;
    }
    如果(新日期()>新日期(值))
    {
    警报(“显示日期和时间应为当前日期或未来日期”);
    返回false;
    }
    否则{
    var成人=通知儿童;
    var ticketfare=(成人*200)+(无儿童*100);
    提醒(“您的近似票款金额为“+ticketfare+“INR”);
    返回true;
    }
    }
    。左{
    显示:内联块;
    宽度:140px;
    文本对齐:左对齐;
    }
    .对{
    边缘顶部:5px;
    边缘底部:5px;
    显示:内联;
    左边距:100px;
    }
    标题{
    宽度:100%;
    保证金:0自动;
    }
    .项目{
    位置:相对位置;
    溢出:隐藏;
    宽度:200px;
    }
    .项目img{
    最大宽度:100%;
    -moz转换:全部为0.3s;
    -webkit转换:所有0.3;
    过渡:均为0.3秒;
    }
    .项目:悬停img{
    -moz变换:比例(1.2);
    -webkit转换:规模(1.2);
    转换:比例(1.2);
    }
    
    电影票预订
    名称
    
    电影名称
    圆圈
    电话号码
    显示日期和时间
    车票数量
    儿童基金会的数目

    您从
    getElementById().value
    获取一个字符串,因此需要将其转换为一个数字。例如,
    var not=parseInt(document.getElementById(“tickets”).value)


    另外,尝试使用更具描述性的变量名。
    not
    可以是
    numTickets
    noc
    可以是
    numChildrensTickets
    getElementById()返回一个字符串。值
    因此需要将其转换为一个数字。例如,
    var not=parseInt(document.getElementById(“tickets”).value)


    另外,试着使用更具描述性的变量名。
    not
    可以是
    numTickets
    noc
    可以是
    numChildrensTickets
    这就是我将要做的。为了节省空间,我已经将示例缩减为必要的位

    现在的问题是,除非您阻止表单在执行事件侦听器之前提交的事件的默认操作,否则您需要阻止默认操作,验证表单,然后在通过验证后提交结果

    本例主要是这样的,现在您只需要将已验证的响应发送到服务器。请记住,客户端验证不应取代服务器端验证。任何面向客户端的内容都不应被信任,因为可以从控制台轻松修改

    序列化表单的方法有很多,但是get将请求发送到服务器是非常简单的(同样,有几种方法可以做到这一点)

    const form=document.getElementById('booking-form');
    form.addEventListener('submit',event=>{
    event.preventDefault();
    const tickets=+form.tickets.value;
    const children=+form.children.value;
    const date=form.date.value;
    康斯特成人=门票-儿童;
    交通费=(成人*200)+(儿童*100);
    试一试{
    如果(成人<0){
    投掷“儿童数量不得超过门票数量”
    }
    if(Date.now()>Date.parse(Date)){
    抛出“不能在过去进行图书展示”;
    }
    }捕获(错误){
    警报(错误);
    返回false;
    }
    提醒(`您的票款金额约为${fare}INR`);
    返回true;
    })