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