4

最近从编写小型 vb 应用程序更改为 Web 应用程序。目前还没有切换到 C#。

试图让一个 ASP.net 表单添加几个文本框并在另一个文本框中显示结果。

FormView这是在插入模式下使用控件的ASP.NET 4.0 表单。问题是,无论我在框中单击、Tab 进入或退出,它似乎都不会触发 JavaScript

<script language="javascript" type="text/javascript">
function SumCalc() 
{
    Window.alert("On Blur");
    var num1 = parseInt(document.getElementById("LeaveHoursTextBox").value);
    var num2 = parseInt(document.getElementById("LeaveHours2TextBox").value);
    var num3 = parseInt(document.getElementById("LeaveHours3TextBox").value);
    var TotalTime = num1 + num2 + num3

    document.getElementById("HoursTextBox").value = TotalTime;
}
</script>

以下是我的html的一部分。页面很长,所以我没有发布它的全部..

<asp:TextBox ID="LeaveHoursTextBox" runat="server" 
Text='<%# Bind("LeaveHours") %>' 
onblur = "return sumCalc()"/>
4

3 回答 3

3

有两个问题,

更改onblur = "return sumCalc()"onblur = "return SumCalc()"/>

您调用的 JS 函数有错字。

更改Window.alert("On Blur");alert("On Blur");

于 2012-10-25T13:19:01.700 回答
3

Javascript 区分大小写。将您的电话更改为return SumCalc(),也Window.alert不会工作,使用window.alert或只是alert代替。

进一步从 中删除空格onblur = "return sumCalc()",有效的 html 将是 onblur="return sumCalc()".

于 2012-10-25T13:17:57.297 回答
2

通过 jQuery blur 绑定它:http: //api.jquery.com/blur/

你可以这样做:

$("#LeaveHoursTextBox").blur(function(){
    Window.alert("On Blur");
    var num1 = parseInt(document.getElementById("LeaveHoursTextBox").value);
    var num2 = parseInt(document.getElementById("LeaveHours2TextBox").value);
    var num3 = parseInt(document.getElementById("LeaveHours3TextBox").value);
    var TotalTime = num1 + num2 + num3

    document.getElementById("HoursTextBox").value = TotalTime;
})
于 2012-10-25T13:20:42.187 回答