所以我有一个文本框,我在其中添加了markAsException的onchange事件。
我的javascript是 -
function markAsException(recordID) {
//alert("Exception");
//mark exception column
document.getElementById("ctl00_cpMain_lblScrollException_" + recordID).innerText = "Exception";
document.getElementById("ctl00_cpMain_lblScrollException_" + recordID).style.color = "#FF0000";
document.getElementById("ctl00_cpMain_tdScrollException_" + recordID).style.backgroundColor = "#99CCFF";
//enable comments ddl and remove blank (first item)
document.getElementById("ctl00_cpMain_ddlCommentId_" + recordID).disabled = false;
document.getElementById("ctl00_cpMain_ddlCommentId_" + recordID).focus();
document.getElementById("ctl00_cpMain_ddlCommentId_" + recordID).options[0] = null;
}
我想要做的是,当用户更改文本框中的值时,将列标记为“异常”,然后将下拉列表集中在他们必须选择异常原因的位置。
这就是发生的事情..如果我在该文本框上并更改它,然后选项卡,它会标记到下拉列表。
但是,如果我更改了值,然后只需单击表单上的另一个文本框,我就不会关注下拉列表。
我将如何实现这一目标?
答案 0 :(得分:0)
我建议使用JQuery的change()函数。
优点是它可以在不同的浏览器中更稳定。
类似的东西:
$('#<%= TextBox1.ClientID %>').change(function(){
// extract the recordID from the textbox - perhaps with an attribute?
markAsException(recordID);
});
我的评论越来越长,所以我正在扩大:
在页面完成加载时,查看JQuery documentation以进行设置。如果tb是文本框的ID,则选择器将为
$('#<%= tb.ClientID %>')
我建议您更换代码并使用
tb.Attributes.Add("recordID", recordId.ToString());
这会将您需要的ID添加到文本框标记中。一旦你进入上面概述的功能,你可以使用以下选择器来获取javascript中的recordID
var recordID = $('#<%= TextBox1.ClientID %>').attr('recordID');
一起
$(document.ready(function(){
$('#<%= tb.ClientID %>').change(function(){
var recordID = $('#<%= tb.ClientID %>').attr('recordID');
if(recordID){
markAsException(recordID);
}
});
});