この簡略化されたフィドルでは、後続のフォーム送信で使用される「トークン」の値を再設定しようとしていますが、値を設定しても、次のパススルー「トークン」はQWERTYの初期値に設定されたままです。 。
var token = '';
function pollServer(token) {
alert("Calling with token: " + token);
alert("OLD: " + token);
token = "ASDFG"; // new token
alert("NEW: " + token);
}
function onsubmit_action() {
alert("A: " + token);
if (token === '') {
// set the initial token
token = 'QWERTY';
}
alert("B: " + token);
pollServer(token);
event.preventDefault();
}
デモ:http://jsfiddle.net/tUtRH/
アラートは次のようになります。
<submit form>
A:
B: QWERTY
Calling with token: QWERTY
OLD: QWERTY
NEW: ASDFG
<submit form>
A: ASDFG
代わりに、2番目のフォームの送信後、次のようになります。
A: QWERTY
顔を平手打ちしたり、頭に冷たい水をかけたりしていただければ幸いです。(明らかに、このコードは最小限のケースをカバーするために削除されています。これは実際には、トークンなどを取得/設定する一連のポーリング/ AJAX呼び出しです。)