阻止在未填写所有输入的情况下提交订单


Block submitting the order without filled all inputs?

当用户单击提交按钮(该按钮的操作PHP在不同的文件中)时,有没有办法警告用户,他没有填写所有输入(而不是提交空字段),并让他留在该页面上进行更正(尽管操作PHP在另一个文件中)?感谢

不需要JavaScript!只需使用HTML5required属性:

<input type="text" name="username" placeholder="Enter your username" required />

显然,您还必须在服务器端验证它,因为用户可以使用Firebug的Inspect Element更改此代码。但这很容易:

<?php
if (isset($_POST['username') && $_POST['username'] != '') {
    // Passed
} else {
    // Failed
}

试试这个javascript代码

<SCRIPT>
function sub()
    {
    var usrname=document.getElementById("username").value;
    usrname=usrname.replace(/ /g,""); //for checking user isnt just entering spaces
    if(usrname!="")
    {
    document.getElementById("frm").submit();
    }
    }
</SCRIPT>

http://jsfiddle.net/RhLyE/3/

是的,您可以处理表单的onsubmit事件。请参阅此处。如果浏览器禁用了javascript,php操作脚本仍然可能接收到无效数据。