Javascript 如果输入的日期不是星期日,如何提交表格?

Javascript 如果输入的日期不是星期日,如何提交表格?,javascript,html,forms,Javascript,Html,Forms,以下HTML标记是用于插入日期的表单 如果是星期天,用户不能提交表单,否则表单应该正常提交 但是,我没有提到形式、动作和方法 如何使用JavaScript实现这一点 <html> <head></head> <body> <form> <table> <tr> <td>Dep

以下HTML标记是用于插入日期的表单

如果是星期天,用户不能提交表单,否则表单应该正常提交

但是,我没有提到形式、动作和方法

如何使用JavaScript实现这一点

<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;
颜色:绿色;
}
输入#提交{
背景:金;
}


基本上,想法是:

  • 从字段中获取数据
  • 将提取的数据传输到后端服务
  • 您可以使用jQuery和PHP轻松实现: (要使用此代码,您必须将jQuery脚本集成到站点代码中: )

    submit.js(Jquery):

    /*从字段中获取数据并通过AJAX POST发送*/

    //单击ID为“BUTTON\u submit”的按钮,执行以下操作

    $(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"]) . '!';
    ?>