在这个简化的小提琴中,我试图重新设置用于后续表单提交的“标记”的值,但是尽管设置了值,下一个传递'标记'仍然设置为QWERTY的初始值。Javascript变量貌似不会设置
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();
}
DEMO:http://jsfiddle.net/tUtRH/
警报应该去:
<submit form>
A:
B: QWERTY
Calling with token: QWERTY
OLD: QWERTY
NEW: ASDFG
<submit form>
A: ASDFG
相反,第二种形式提交后,我得到:
A: QWERTY
在面对任何拍打或冷水倾倒在我的头上会非常感激。 (很明显,这段代码已经被剥离,以涵盖最小的情况,这实际上是一堆轮询/ AJAX调用获取/设置令牌等)。
他们都是这么好的答案,我希望我能选择其中** **全部正确! – Spanky 2012-08-14 20:34:13