对动作标签感到困惑

时间:2014-11-05 03:42:47

标签: javascript php html forms post

我有一个html页面,其表单设置如下:

<form name="form" action="process.php" method="POST">
    Username: <input type="text" name="user">
    <br>
    Password: <input type="text" name="pass">
    <br>
    <input type="submit" value="LOGIN">
</form>

当我点击我的提交按钮时,数据会被发送到我的process.php脚本,这一切都很好。

但我想做的是将一个JSON字符串发送到PHP脚本,并让PHP脚本解析它。 因此,我尝试了以下内容:

<body>
PLEASE ENTER YOUR INFORMATION:
<form name="form" action="">
    Username: <input type="text" name="user">
    <br>
    Password: <input type="text" name="pass">
    <br>
    <input type="submit" value="LOGIN" onclick="encrypt(this.form, 0)">
</form>
</body>


<script LANGUAGE="JavaScript">

function encrypt(form, key){

    var user = form.user.value;
    var pass = form.pass.value;
    var str = {"username": user, "encrypted_password": pass};
    var JSON_str = JSON.stringify(str);

    var xhr = new XMLHttpRequest();
    xhr.open("POST", "process.php", true);
    xhr.send(JSON_str);

}

</script>

然而,这样做并没有做任何事情。当我单击提交按钮时没有任何反应。即使我可以在单击提交按钮时让process.php显示某些内容,这将非常有用。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果你想使用onclick事件,那么你需要用按钮替换提交。

<input type="button" value="LOGIN" onclick="encrypt(this.form, 0)">

并使用javascript提交表单。