首先,如果有更好的方法吗?让我知道......这种方式看起来有点像“hackish”。以下是我要做的事情:正如您在下面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
}
?>
答案 0 :(得分:1)
在input
字段中添加ID:
<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 到达那里。
答案 1 :(得分: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'); } );
}
}
答案 2 :(得分:1)
从提示中抓取电子邮件,将其粘贴到输入字段并提交表单。
<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>