如何在没有重置表单的情况下显示javascript警报

时间:2017-07-06 03:25:23

标签: javascript php

我有一个要填写的表单,如果密码和重新确认密码不匹配,将显示弹出式javascript警报。但是,一旦我在弹出警报上单击“确定”,整个表单就会重置。但我只想让密码再次为空白,而不是整个表格。

我试过这种方式:

if($pwd != $pwd2) {
    echo("<script type='text/javascript'>alert('Password does not match!')</script>");
}

我也试过了下面的那个,但仍然发生了同样的事情:

if($pwd != $pwd2) {
    ?>
    <script type="text/javascript">
        alert("Password does not match!");
    </script>
    <?php
}

4 个答案:

答案 0 :(得分:0)

您的验证在服务器端,一旦您点击服务器,表单每次都会重置,为了显示服务器的验证错误,您需要再次将值传递给表单并出现错误。 如果要在验证错误上显示警报,请使用jQuery或简单JS的客户端验证。通过这种方式,您的表单值保持不变,并且会弹出警报。

答案 1 :(得分:0)

如果你真的需要使用php

<?php
$pwd = isset($_REQUEST['pwd']) ? $_REQUEST['pwd'] : "";
$pwd2 = isset($_REQUEST['pwd2']) ? $_REQUEST['pwd2'] : "";

if($pwd != $pwd2) {
    echo("<script type='text/javascript'>alert('Password does not match!')</script>");
}
>
<input name"pwd" value="<?php echo $pwd; ?>">
<input name"pwd2" value="<?php echo $pwd2; ?>">

答案 2 :(得分:0)

如果您希望其他输入字段在提交后不为空,则应使用php尝试此操作。 我们假设您的输入字段是用户名。

$username = $_POST['username'];
<input type="text" name="username"  value="<?php echo htmlentities($username); ?>">

当您使用此功能时,单击确定并获取警报后,您的用户名字段将不会为空。您输入的值将显示在文本字段中。

答案 3 :(得分:0)

尝试使用此代码来解决您的问题。

$username = $_POST['username'];
$password = $_POST['password'];

<input type="text" name="username"  value="<?php echo htmlentities($username); 
?>">
<input type="password" name="password">