我有一个基本的Web表单页面,其中有两个隐藏字段,在从Bing Maps接收结果后,其值在jQuery方法中设置。基本结构是这样的:
<asp:HiddenField runat="server" ID="hvLatitude" ClientIDMode="Static" />
<asp:HiddenField runat="server" ID="hvLongitude" ClientIDMode="Static" />
以下是设置隐藏字段的Javascript(剪切Bing地图调用)的剪辑:
if (results.resourceSets[r].resources[re].geocodePoints[gp].usageTypes[u] == "Route") {
console.log('found it!');
var coords = results.resourceSets[r].resources[re].geocodePoints[gp].coordinates;
console.log(coords);
var lat = $("#hvLatitude");
var lng = $("#hvLongitude");
//make sure it only gets set once
if (lat.val().length == 0 || lng.val().length == 0) {
lat.val(coords[0]);
lng.val(coords[1]);
console.log('values set!');
}
}
当代码运行时,我的标准回发发生并且隐藏值不存在 - 我已经检查了字段本身并查看了Request.Forms
内部,但它们是空字符串。试过ClientIDMode="Static"
和Auto
没有运气。最奇怪的部分是,如果我在控制台中$("#hvLatitude").val()
(因为Visual Studio正在等我从一个断点移动),那么值就在那里!这是我见过的最令人困惑的事情。
有什么建议吗?页面上没有Javascript错误,所以我现在完全失去了。
答案 0 :(得分:2)
检查这两个隐藏字段是否在页面窗体内,并检查开发人员面板中的网络选项卡是否返回了它们的值,如果您在回发函数中更改了它们的值,它是否在客户端更改?
答案 1 :(得分:0)
试试这个:
#!/usr/bin/env python
import signal
import sys
import time
global keeponline
def signal_handler(signal, frame):
print('You pressed Ctrl+C!')
print "Keeponline is", keeponline
print "Saving the value"
fd = open("output.txt","w+")
fd.write(str(keeponline))
fd.close()
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
#Just an initilization
keeponline = 0
#Read a line in the file every second and increment the variable
fd = open("a.txt","r")
while True:
line = fd.readline()
keeponline += 1
print "Line:", line
time.sleep(2)
#It is just an example condition
if ( len(line) == 0 ):
break
fd.close()