1

嗨,尝试通过在验证完成后更改操作属性来将用户数据从客户端提交到服务器端(这是我过去做过的事情,突然它不起作用)。我的 html 表单(帖子)

       <!-- Submit data to server-side -->
        <form id="register" method="post">
        <table class="tableReg" border="0">
            <tr class="rowReg">
                <td>User name:</td>
                <td><input onfocus="resetColor('userID')" type="text" id="userID" name="user"></td>
                <td id=note1></td>
            </tr>
            <tr class="rowReg">
                <td>Password:</td>
                <td>
                    <input onfocus="resetColor('passwordID1')" type="password" id="passwordID1" name="password1">
                </td>
                <td id=note2></td>
            </tr>
            <tr class="rowReg">
                <td>Repeat Password:</td>
                <td>
                    <input onfocus="resetColor('passwordID2')" type="password" id="passwordID2" name="password2">
                </td>
                <td id=note3></td>
            </tr>
            <tr class="rowReg">
                <td>Email:</td>
                <td><input onfocus="resetColor('emailID1')" type="email" id="emailID1" name="email1"></td>
                <td id=note4></td>
            </tr>
            <tr class="rowReg">
                <td>Repeat Email:</td>
                <td><input onfocus="resetColor('emailID2')" type="email" id="emailID2" name="email2"></td>
                <td id=note5></td>
            </tr>
        </table>
            <input type="button" onclick="checkInput()" value="Submit">
        </form>

如果您在我按下 sumbit 按钮后看到信息被检查并且如果通过验证被发送到服务器端,我使用了 javaScript:

function checkInput(){
var regexUser = /^(?=.{1,20}$)[a-zA-Z0-9]+$/;//all letters ad number and size between 1-20
var regextPwd = /^(?=.{8,8}$)(?=.*[a-zA-Z])(?=.*\d)(?=.*[!#$%&? "]).*$/; //Password must contain 8 characters and
                                                                         // at least one number, one letter and one
                                                                         // unique character such as !#$%&?
//Email regex
var regexMail = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

var errorArr = new Array(0,0,0,0,0);

document.getElementById("register").action = "databasebuilder.php";}   

现在,在我验证输入之后,它假设发送到我本地主机上同一目录中的 databasebuilder.php,但它没有!

我已经在没有的情况下对其进行了测试,并且应该可以理解为什么 document.getElementById("register").action 不起作用。

4

2 回答 2

2

你为什么不自己提交表格。像这样...

document.getElementById("register").action = "databasebuilder.php";
document.getElementById("register").submit();
于 2013-07-01T09:57:21.110 回答
0

尝试这个,

将此添加到您的js function

 document.getElementById("register").action= "databasebuilder.php";
 reutrn true;

也将typefrom更改buttonsubmitlike

 <input type="submit" onclick="return checkInput()" value="Submit">
于 2013-07-01T09:55:38.140 回答