JavaScript-如果表单的文本字段中的默认值发生更改,则强制重定向

JavaScript-如果表单的文本字段中的默认值发生更改,则强制重定向,javascript,Javascript,我有一个表单,它动态地预先填充了值,提交时会调用API来更新第三方数据库。我对JS相当陌生,但我有一个问题,即如果同事将表单发送给其他人,它将执行API调用来更新他们的联系人记录,而不会为更改电子邮件字段的任何人创建新的联系人记录 如果有人开始更改电子邮件字段,是否有办法强制重新定向到静态表单URL?我在看这样的东西: document.getElementById('email').onchange=function() { if (this.value != this.defaultValu

我有一个表单,它动态地预先填充了值,提交时会调用API来更新第三方数据库。我对JS相当陌生,但我有一个问题,即如果同事将表单发送给其他人,它将执行API调用来更新他们的联系人记录,而不会为更改电子邮件字段的任何人创建新的联系人记录

如果有人开始更改电子邮件字段,是否有办法强制重新定向到静态表单URL?我在看这样的东西:

document.getElementById('email').onchange=function()
{
if (this.value != this.defaultValue)
location.href='http://valueinhere'
}

我总是可以触发一条弹出消息,解释为什么需要重定向到静态表单?

在JS中,输入值完成更改时触发“onchange”(即在文本输入中-模糊时)。您可能需要尝试使用“onkeydown”和“onmouseup”(用于复制和粘贴)事件来检查旧值和当前值之间的差异。

您可以使用以下方法:

HTML

我改用onkeyup事件,因为onchange只在blur上触发,所以如果他们更改邮件,但不单击另一个输入/元素,则不会发生任何事情

请记住,如果一个网页不是用户友好的,那么改变预期的行为是什么。如果有一个禁用的输入字段和旁边的“更改”按钮,可能会更好

在这种情况下,您可以使用:

HTML


谢谢塞尔吉奥-使用“更改”按钮可以很好地接受建议。。。这可能是一个更好的用户体验,而不是突然重新引导他们!让我来汇报一下,但它对keyup函数更有意义…@user2652921,好的。我用一个例子更新了我的答案。
<input type="text" id="email" value="email.com" firstvalue="email.com" />
document.getElementById('email').onkeyup = function () {
    var firstvalue = this.getAttribute('firstvalue');
    if (this.value != firstvalue) {
        alert('You will be rediretioned!');
        window.location.href = 'http: //www.valueinhere.com';
    }
};
<input type="text" id="email" value="email.com" disabled="disabled" />
<button type="button" id="mailchange">Change this</button>
document.getElementById('mailchange').onclick = function () {
    alert('You will be rediretioned!');
    window.location.href = 'http: //www.valueinhere.com';
};