Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JQuery中使用标签_Jquery - Fatal编程技术网

在JQuery中使用标签

在JQuery中使用标签,jquery,Jquery,我试图使用在jqueryui对话框对象上显示一些文本。但它似乎总是失去价值。下面是我设置值的代码段: function populateDialog(intMeterID) { $.ajax( { type: "POST", url: "/WS.asmx/GetMeterSettingsByMeterID",

我试图使用
在jqueryui对话框对象上显示一些文本。但它似乎总是失去价值。下面是我设置值的代码段:

function populateDialog(intMeterID) {

                  $.ajax(
                   {
                       type: "POST",
                       url: "/WS.asmx/GetMeterSettingsByMeterID",
                       data: "{intMeterID:" + intMeterID + "}",
                       async: false,
                       dataType: "json",
                       contentType: "application/json; charset=utf-8",

                       success: function(msg) {

                           var strMeterName = msg.d.MeterName;

                           $("label[for='lblMeterID']").text(intMeterID);
                           $("label[for='lblMeterName']").text(strMeterName);
点击一个按钮,我试图从标签上取值,但它是空的。但是,msg.d.MeterName确实包含数据

function saveMeterDetails() {

                   var intMeterID = $("label[for='lblMeterID']").text();
                   var strMeterName = $("label[for='lblMeterName']").text();
html:


[...]

知道为什么吗?

我认为这实际上与标签本身无关。我认为在“成功”回调时intMeterID是空的。这就是为什么如果你去掉那条线它会起作用

“success:function(){blah}”的实际操作是定义一个新函数,该函数将在请求成功时调用。当时还不知道“intMeterID”

如果您真的需要,您可以将其作为一个全局变量,或者使ajax调用阻塞,或者(我最喜欢的)将变量服务器端添加到ajax结果中


编辑:嗯,没关系,我刚读到你已经找到了答案。显然我错了:)

我认为这是一个范围问题。当成功回调被称为“intMeterID”时,该范围中实际上不存在。即使你在最初的通话中通过了它。您需要将其设置为全局变量,或者将其作为ajax调用中的数据传回


代码现在可以工作了,因为您删除了将未定义文本设置到标签的错误调用

您还应该发布相应的HTML表单以方便调试…尝试使用
value()
而不是
text()
?这是我的HTML:奇怪的是,仪表名称会显示出来,但只有当我在设置它的位置之前删除行时才会显示:$(“标签”)[for='lblMeterID']”。文本(intMeterID);我找到了答案,虽然我不知道为什么它会起作用。我自己把仪表ID标签排成一行,就像这样:不,实际上我认为你是对的;-),在tMeterID未定义并中断函数的剩余部分
<div id="dialog-form">
    <div style="height: 200px; min-height: 109px; width: auto;" id="dialog">
        <table>
            <tr>
                <td>
                    <label style="display:none;" for="lblMeterID" />
                    <label style="font-weight:bold;" for="lblMeterName" />
                </td>
            </tr>
            <tr></tr>
            <tr></tr>
            [...]