Javascript onblur事件未从Html.TextBoxFor helper触发
我遵循了一个示例,该示例从TextBoxFor helper调用了一些javascript代码,如下所示:Javascript onblur事件未从Html.TextBoxFor helper触发,javascript,jquery,asp.net-mvc-3,Javascript,Jquery,Asp.net Mvc 3,我遵循了一个示例,该示例从TextBoxFor helper调用了一些javascript代码,如下所示: <%=Html.TextBoxFor(c => Model.Birthdate, new { @class = "datepicker", maxlength = 10, @onblur = "chkBirthday" })%> <script type="text/javascript"> $(document).on("blur", "select[na
<%=Html.TextBoxFor(c => Model.Birthdate, new { @class = "datepicker", maxlength = 10, @onblur = "chkBirthday" })%>
<script type="text/javascript">
$(document).on("blur", "select[name=MainContent_Birthdate]",
function chkBirthday() {
document.getElementById("MainContent_ErrorMessage").visibility = 'visible';
document.getElementById("MainContent_ErrorMessage").innerHTML = 'Testing';
});
Model.Birthdate,新的{@class=“datepicker”,maxlength=10,@onblur=“chkBirthday”}]>
我的javascript,在asp:Content头中,如下所示:
<%=Html.TextBoxFor(c => Model.Birthdate, new { @class = "datepicker", maxlength = 10, @onblur = "chkBirthday" })%>
<script type="text/javascript">
$(document).on("blur", "select[name=MainContent_Birthdate]",
function chkBirthday() {
document.getElementById("MainContent_ErrorMessage").visibility = 'visible';
document.getElementById("MainContent_ErrorMessage").innerHTML = 'Testing';
});
$(文档)。在(“模糊”,“选择[name=MainContent\u Birthdate]”上,
函数chkBirthday(){
document.getElementById(“MainContent_ErrorMessage”)。可见性='visible';
document.getElementById(“MainContent_ErrorMessage”).innerHTML='Testing';
});
我尝试了几个选项,当我从助手中取出标签时,可以得到一些东西,包括在我的函数中有一个警报(“测试”),删除行$(文档),给元素全名(MainContent前缀),但没有任何效果
我将Chrome与他们的开发工具一起使用,可以看到助手生成的元素名称是正确的。我不知道怎么了
有人能帮忙吗?元素不是文本框吗?您正在使用下拉列表的选择器(选择)。试试这个:
$(document).on("blur", "input[name=MainContent_Birthdate]"
^^^
看看这是否有效
您的选择器无效。您应该使用
输入[name=MainContent\u Birthdate]
谢谢Hanlet,您也是正确的。不幸的是,我认为我只能选择一个答案,所以选择第一个答案似乎是最公平的方式。不相关,但值得一提的是——我发现与元素的工作方式保持一致更容易。我注意到您同时使用了vanilla JS和jQuery。vanilla JS可以很容易地替换为$('MainContent\u ErrorMessage').css('visibility',visible')$('MainContent'u ErrorMessage').html('Testing')代码>在功能上是相同的,但在视觉上它更优越,因为它与您的事件处理程序一致(它的键入长度也缩短了一两个字符)