1

送信時に API 呼び出しを実行してサードパーティのデータベースを更新する値が動的に事前入力されたフォームがあります。私はJSにかなり慣れていませんが、同僚がフォームを他の人に送信すると、API呼び出しを実行して連絡先レコードを更新し、電子メールフィールドを変更した人のために新しい連絡先レコードを作成しないという問題があります.

誰かがメール フィールドを変更し始めた場合に、静的フォーム URL に強制的にリダイレクトする方法はありますか? 私は次のようなものを見ていました:

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

必要に応じて静的フォームにリダイレクトする理由を説明するメッセージをポップアップにいつでもトリガーできますか?

4

2 に答える 2

0

JS では、入力値の変更が終了したときに「onchange」がトリガーされます (つまり、テキスト入力 - ぼかし時)。'onkeydown' および 'onmouseup' (コピー アンド ペースト用) イベントを使用して、古い値と現在の値の違いを確認してください。

于 2013-08-05T11:32:44.237 に答える
0

これを使用できます:

HTML

<input type="text" id="email" value="email.com" firstvalue="email.com" />

JS

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';
    }
};

デモはこちら

onchange はぼかしでのみトリガーされるため、代わりに onkeyup イベントを使用しました。そのため、メールを変更しても別の入力/要素をクリックしないと何も起こりません。

Web ページがユーザーフレンドリーではない場合、期待される動作を変更することに注意してください。入力フィールドを無効にして、そのすぐ横に「変更」ボタンを配置したほうがよいかもしれません。

その場合、これを使用できます:

HTML

<input type="text" id="email" value="email.com" disabled="disabled" />
<button type="button" id="mailchange">Change this</button>

JS

document.getElementById('mailchange').onclick = function () {
    alert('You will be rediretioned!');
    window.location.href = 'http: //www.valueinhere.com';
};

デモはこちら

于 2013-08-05T11:38:58.580 に答える