ASP.NET隐藏字段未发布

时间:2017-07-14 01:56:45

标签: javascript c# jquery asp.net webforms

我有一个基本的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错误,所以我现在完全失去了。

2 个答案:

答案 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()