使用asp.net文本框时的奇怪行为

时间:2013-10-03 10:35:25

标签: c# javascript jquery html asp.net

我有一个asp.net页面 - 它在主页面中呈现了许多自定义控件 - 我有一个asp.net文本框 - 在某些情况下它必须是可编辑的,在其他情况下它必须是只读的。在大多数情况下,它都按预期工作。有一个我遇到困难的小虫子。

enter image description here

因此,在我的上一年专栏中,值呈现应该只有1,2,3,0等等 - 正如您在呈现标记时所看到的那样,它会创建此标记:

<td id="ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_ctl06">
                        <input name="ctl00$ctl00$PartContentPlaceHolderMain$ContentPlaceHolderMain$ctl00$ctrlComparison$ctrlComparisonCars1$tbPreviousNoManualCars" type="text" value="1" disabled="disabled" id="ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_tbPreviousNoManualCars" class="tbPreviousNumber ui-widget-content ui-corner-all" style="width:50px;display:none;"><span>1</span><span>1</span>                     
                    </td>

所以问题是生成的双跨度。在我的主页面中呈现此控件我想做类似的事情:

        var test = $("#ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_PreviousNoManualCars").children().find('span').val();
        alert(test);

然而,我的警报说未定义。是否可以使用类似于上述内容的方法删除其中一个跨度?

还有一种更好的方式来获取将要呈现的ID - 我刚刚从开发人员工具中提取了一个用于测试的测试,以尝试使其正常工作。

由于

1 个答案:

答案 0 :(得分:1)

您使用了val(),但它应该是 text() ,因为它不是输入元素,而是span

也可以使用 next()

 var test = $("#ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_tbPreviousNumberNoManualCars")
    .next('span').text();
    alert(test);