我似乎无法解决这个问题......或者确实更改了标签文字。任何人都可以提供任何建议吗? 警报就在那里,因为我正在测试事件是否真的在发射..它似乎并不是。唯一的另一条信息是,这是一个fancybox iframe中的表单。我甚至不确定我是否有正确的代码来更改文本,但这确实是第二个问题......现在我无法解决该事件。
代码是
<asp:DropDownList ID="ddlPUom" runat="server" CssClass="form-control input-sm"></asp:DropDownList>
<asp:Label ID="lblpuom" ccclass="col-xs-2 control-label" runat="server" Text=""></asp:Label>
<script type="text/javascript">
$('#ddlPUom').change(function () {
alert("did this fire?");
var lbltext = doc.getElementById("ddlPUom");
var lblPUOM = doc.getElementById("lblpuom");
lblPUOM.lbltext = lbltext.innerhtml;
});
</script>
感谢所有评论..你引导我朝着正确的方向前进。最后,我将标签更改为使用上述代码的标准<label></label>
,并创建了一个document.ready函数,用于从后面的代码设置的下拉列表中进行更新。
答案 0 :(得分:1)
原因是,由于ddlPUom
是服务器端控件,因此在DOM中呈现时,id会更改。页面信息和控制信息会被添加到前面,并变成类似ctl00_Main_ddlPUom
使用
$('[id$=ddlPUom]').change(function () { // id which ends with the text 'ddlPUom'
或
$('[id*=ddlPUom]').change(function () { // id which contains the text 'ddlPUom'
但这里还有其他几种方式 https://stackoverflow.com/a/20227176/489512
答案 1 :(得分:0)
您的代码看起来足够正确,可以执行警报。也许你的控件的id实际上并没有设置为ddlPUom。它有时是区分大小写的。请参阅此帖有关区分大小写JQuery class selectors like $(.someClass) are case sensitive?
的信息还要检查浏览器中的错误控制台,看看是否有任何javascript错误。 Firefox:工具&gt; Web开发人员&gt;错误控制台 Chrome:右键单击页面并选择inspect元素,在出现的窗口中单击Console。
现在您添加了html - 下面的代码应该触发事件。
$(document).ready(function(){
$('#<%=ddlPUom.ClientID%>').change(function () {
alert("did this fire?");
}
});
答案 2 :(得分:0)
你可能会尝试这样的事情......
<script type="text/javascript">
$('#ddlPUom').change(function () {
alert("did this fire?");
var lbltext = doc.getElementById("<%=ddlPUom.ClientID%>");
var lblPUOM = doc.getElementById("<%=lblpuom.ClientID%>");
lblPUOM.lbltext = lbltext.innerhtml;
});
</script>
您可能还需要将ClientID部分添加到下拉列表中。