焦点不在asp文本框中工作

时间:2011-11-16 04:39:26

标签: javascript asp.net

在输入费率和数量时,我希望自动计算总金额,所以我尝试了以下内容。

function getAmt()
{   
    if(isNaN(document.getElementById('<%=TxtRate.ClientID%>').value))
    {
        alert("Illegal Rate Entered, Please Check It Out.");
        document.getElementById('<%=TxtRate.ClientID%>').focus;

        return;
    }
    else if(isNaN(document.getElementById('<%=TxtQty.ClientID%>').value))
    {
        alert("Illegal Quantity Entered, Please Check It Out.");
        document.getElementById('<%=TxtQty.ClientID%>').focus;

        return;
    }   
    document.getElementById('<%=TxtAmt.ClientID%>').value=parseFloat
        (document.getElementById('<%=TxtRate.ClientID%>').value)*parseFloat
        (document.getElementById('<%=TxtQty.ClientID%>').value)
}

现在我创建了一个文本框:

<TextBox ID="TxtAmt" runat="server" BorderStyle="Solid" onFocus="getAmt()">

此代码未运行..我缺少什么?

2 个答案:

答案 0 :(得分:0)

试试这个:

var amtText = $('#' + '<%=TxtAmt.ClientID%>');
amtText.bind('focus', getAmt()); // using jQuery here

如果您不想使用jQuery(或任何其他JavaScript库),那么您必须使用纯JavaScript。但是,要将处理程序(事件侦听器)附加到浏览器中的事件,您有两种方法:

  1. 您可以使用HTML元素的 onevent 属性(例如 onclick onfocus 等),这通常称为DOM Events Level 1
  2. 或者,您可以在IE8浏览器中使用DOM Level 2 EventsaddEventListenerremoveEventListeners,或attachEventdetachEvent。有关它的更多信息和示例,请参阅此MDN页。

答案 1 :(得分:0)

试一试

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "foc", "document.getElementById('" + TxtAmt.ClientID + "').focus();", true);

当您想要聚焦txt amt时使用上面的代码段,一旦txtamt成为焦点,您的函数将根据提供的比率和数量计算金额值。

如果您发现它有用,请将其标记为您的答案,否则请告诉我......