Javascript 如果输入的日期不是星期日,如何提交表格?
以下HTML标记是用于插入日期的表单 如果是星期天,用户不能提交表单,否则表单应该正常提交 但是,我没有提到形式、动作和方法 如何使用JavaScript实现这一点Javascript 如果输入的日期不是星期日,如何提交表格?,javascript,html,forms,Javascript,Html,Forms,以下HTML标记是用于插入日期的表单 如果是星期天,用户不能提交表单,否则表单应该正常提交 但是,我没有提到形式、动作和方法 如何使用JavaScript实现这一点 <html> <head></head> <body> <form> <table> <tr> <td>Dep
<html>
<head></head>
<body>
<form>
<table>
<tr>
<td>Departing</td>
<td>Returning</td>
</tr>
<tr></tr>
<tr>
<td>
<input type="date" name="departing" required>
</td>
<td>
<input type="date" name="returning" id="rtndate" required>
</td>
</tr>
<tr>
<td>
<input type="submit" value="Cheack Availability">
</td>
</tr>
</table>
</form>
</body>
</html>
离开
返回
您可以从输入值使用getDay()
,下面是一个简单的示例
已更新目前正在使用主要浏览器
函数whatsTheDay(){
var inDat=document.getElementById('dateInput')。值;
var inDate=新日期(inDat)
如果(inDate.getDay()==0){//0=星期天,1=星期一..等等
//警报(“星期日”);
//做任何事
document.getElementById('submit').disabled=true;
document.getElementById('submit')。值='disabled';
document.getElementById('err').innerHTML='sunday不允许'
}否则{
//警报(“非星期日”);
document.getElementById('submit')。值='submit';
document.getElementById('err').innerHTML='this day is allowed';
document.getElementById('submit')。disabled=false;
}
}
函数可消费(){
var inDate=document.getElementById('dateInput').valueAsDate;
如果(inDate.getDay()!=0){
document.forms[“myform”].submit();
}
}
输入{
显示:块;
利润率:10px;
宽度:200px;
边界半径:15px 0 15px 0;
边界:无;
填充物:5px;
边框:实心2倍绿色;
字号:18px;
颜色:绿色;
}
输入#提交{
背景:金;
}
基本上,想法是:
$(document).on('click', '#button_submit', function () {
//GET DEPARTING FIELD'S VALUE
var departing = $("[name='departing']").val();
//GET RETURNING FIELD'S VALUE
var returning = $("[name='returning']").val();
//FOR DEBUG CASES YOU CAN PRINT THE VALUES FOR THE CONSOLE (REMOVE OR COMMENT IT WHEN YOU DONE DEVELOPMENT)
console.log('Departing date: ' + departing);
console.log('Returning date: ' + returning);
//OPTIONAL VALIDATION SCRIPT HERE
//SEND THE DATA TO THE BACKEND SERVICE WITH AN AJAX POST
$.ajax({
url: '/path/to/your_form_processor.php', //URL OF THE BACKEND SERVICE (use PHP here)
type: 'POST',
data: {
departing: departing,
returning: returning
} //FIRST TAG: Data name, SECOND TAG: Value
})
.done(function () {
//YOU CAN PROVIDE FEEDBACK HERE ON A SUCCESSFUL POST
console.log("success");
})
.fail(function () {
//OR YOU CAN PROVIDE FEEDBACK HERE ON A FAILED POST
console.log("error");
});
});
在服务器端,您可以使用
$variable_name=$_POST[“dataName”]
方法
您的\u表单\u processor.php(php):
您可以在JSFIDLE上检查正在运行的脚本:
快乐编码 您可以使用javascript实现这一点。看看这个链接。试试看。如果你仍然困在这里,留下一个comment@Pindo请不要链接到w3schools资源,它们往往已经过时,有时甚至是完全错误的。相反,请链接到实际的w3c规范文档或更知名的资源,如@Pindo–请不要参考,根据需要使用ECMA-262、w3c或MDN。谢谢让我知道。这里有一个更可靠的链接不是所有的浏览器都支持输入日期,那些用户将得到纯文本输入。您应该提供格式提示,例如d/m/y或类似格式。然后,您应该为blur或change事件提供一个侦听器,该侦听器读取输入值,将字符串解析为日期,然后检查日期是否为0(即星期日),并向用户提供一条错误消息。另外,在提交时进行验证,如果日期不合适,则阻止提交。在IE 11(或任何其他版本)中根本不起作用。很好,除了
new date(inDat)
可能返回许多值中的任何一个,其中一个可能是合适的日期对象,但大多数不会,具体取决于浏览器。这就是为什么不建议使用日期构造函数来解析字符串,应该手动解析字符串。OP要求提供javascript解决方案,没有标记或提及库。Query+php不太可能是我们想要的。OP可能还不知道可以使用javascript库这一事实。据我所知,jQuery基本上是javaScript。我在任何地方都看不到本机标记,因此我的建议是让OP决定他/她认为有用的东西。要点是,为了实现您的答案,OP必须学习至少3种技术,这些技术不是要求的,也不是解决问题所必需的。是的,jQuery是javascript,但它引入了一个完全不同的API。
<?php
echo 'Departing date: ' . htmlspecialchars($_POST["departing"]) . '!';
echo '<br>'
echo 'Returning date: ' . htmlspecialchars($_POST["returning"]) . '!';
?>