0

首先,如果有更好的方法来做到这一点?让我知道...这种方式似乎有点“骇人听闻”。这是我想要做的事情:正如您在下面看到的input,我有一个文本字段,我只是希望它看起来像一个<a>链接。如果用户单击它,我希望JavaScript在用户输入电子邮件时出现弹出框。我希望他们点击确定,然后我将该电子邮件值发送回表单,然后表单通过 php 帖子提交。

我不知道如何从框中获取值并将其插入form(如果可能)以便它可以提交到php.

这是代码:

    <form id="frm1" action="login.php" method = "post">
        <input onclick="resetPassword()" type="text" name="email" value="Reset Password" style="cursor: pointer; background:none; text-decoration: underline; border: none;"  />
    </form>


    <script>
        function resetPassword() {
        var x;

        var email=prompt("Enter email to reset password.", "example@email.com");

        if (email!=null)
          {
          document.getElementById("frm1").submit();
          }
        }
   </script>


  <?php 
     if (isset($_POST['email'])) {
         $email = $database -> escape_value(trim($_POST['email']));
        //  reset password    
      }
  ?>
4

3 回答 3

1

从 promt 中获取电子邮件,将其粘贴到输入字段并提交表单。

<form id="frm1" action="login.php" method='post'>
    <input id="email" onclick="resetPassword()" type="text" name="email" placeholder="Reset Password" />
</form>

<script type="text/javascript">
  function resetPassword() {    
    var email = prompt("Enter email to reset password.", "email@example.com");

    if (email != null) {
      document.getElementById("email").value = email; 
      document.getElementById("frm1").submit();
    }
  }
</script>
于 2013-07-25T15:49:34.633 回答
1

更好的方法是使用 jQuery 并通过 AJAX 将文本字段的信息发送到需要 $_POST 变量的脚本。这样,该<form>元素将是不必要的。

    function resetPassword() {
        var x;
        var email=prompt("Enter email to reset password.", "example@email.com");
        if (email!=null) {
             $.post( url_of_the_script, {email: email}, function() { alert('Email sent'); } );
        }
    }
于 2013-07-25T15:46:22.163 回答
1

在字段中添加 ID input

<form id="frm1" action="login.php">
    <input id="email" onclick="resetPassword()" type="text" name="email" value="Reset Password" style="cursor: pointer; background:none; text-decoration: underline; border: none;"  />
</form>

    function resetPassword() {

    var email=prompt("Enter email to reset password.", "example@email.com");

    if (email!=null)
      {
      document.getElementById("email").value = email; // Put value into form field
      document.getElementById("frm1").submit();
      }
    }

如果您不希望用户能够直接在表单字段中输入内容,则应为其赋予readonly属性。onclick阻止他们点击它,但他们仍然可以使用Tab.

于 2013-07-25T15:42:09.103 回答