简单代码:
jQuery(document).ready(function () {
var txtAtm = jQuery("#txtAtm");
txtAtm.on("focus", function () {
alert("Focus!");
});
//txtAtm.blur(function () {
// alert("Blur!");
//});
txtAtm.on("blur", function () {
alert("Blur!");
});
});
模糊代码工作正常,焦点代码没有!!任何想法??
如果我将事件更改为焦点它可以工作但捕获Tab键也移动框的内容!!
表单是一个带有以下标记的webform,我想用jQuery替换内联标记(有效!!),我只是想确认我可以捕获事件!! (在第一道障碍失败了!!):
<asp:TextBox ID="txtAtm" runat="server" CssClass="withUnit"
AutoPostBack="true" CausesValidation="true" ValidationGroup="prv">not set</asp:TextBox>
呈现的HTML看起来像webform控件的标准autopost代码:
<input name="ctl00$leftContent$ctl07$txtAtm" type="text" value="not set"
onchange="javascript:setTimeout('WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$leftContent$ctl07$txtAtm", "", true, "prv", "", false, true))', 0)"
onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;"
id="txtAtm" class="withUnit">
答案 0 :(得分:1)
onkeypress你正在使用return false
导致你的代码无效。
如果删除它,它会按照您的意愿开始工作。
答案 1 :(得分:0)
感谢超快的答案,看起来这是一个时间问题!!看起来“准备好”并不“准备好”!以下代码有效:
jQuery(document).ready(function () {
///<summary>
/// Replaces the inline markup
///</summary>
var txtAtm = jQuery("#txtAtm");
setTimeout(function () {
txtAtm.on("focus", function () {
txtAtm.select();
//alert("Focus!");
})
}, 1000);
txtAtm.on("blur", function () {
//alert("Blur!");
initBox(this.id, 'not set');
});
txtAtm.on("click", function () {
txtAtm.select();
});
});
令人讨厌的是,脚本引用也在页面的末尾,所以你可以期待最小的计时问题!