如何在Javascript中为多个文本框编写函数

时间:2013-03-29 08:46:53

标签: javascript asp.net textbox

我正在编写验证货币价值的代码

       function monyValid()
       {

       var valw=document.getElementById("<%=txtID4.ClientID%>").value;
       var regex  = /(?:^\d{1,3}(?:\.?\d{2})*(?:,\d{2})?$)|(?:^\d{1,3}(?:,?\d{3})*(?:\.\d{2})?$)/            
       if (!isNaN(valw) && isFinite(valw)) 
       {
         document.getElementById("<%=txtID4.ClientID%>").value=parseFloat(valw).toFixed(2);
       }           
         if (regex.test(valw))
         {          
           alert("valid");
         }
         else
         {
           alert("Number is invalid");
         }
       }

现在我想对多个文本框应用相同的验证。如何为不同的文本框使用相同的功能。我想要像

这样的东西
      function monyValid(txtVal)
       {           
       var valw=document.getElementById(txtVal).value;
       }

如何实现此功能。

1 个答案:

答案 0 :(得分:1)

传递this并将其用作函数中的参数,而不是调用document.getElementById

<强>的JavaScript

function monyValid(item) {
    var valw = item.value;
    var regex = /(?:^\d{1,3}(?:\.?\d{2})*(?:,\d{2})?$)|(?:^\d{1,3}(?:,?\d{3})*(?:\.\d{2})?$)/
    if (!isNaN(valw) && isFinite(valw)) {
        item.value = parseFloat(valw).toFixed(2);
    }
    if (regex.test(valw)) {
        alert("valid");
    } else {
        alert("Number is invalid");
    }
}

HTML使用

<asp:TextBox ID="txtID4" runat="server" onFocus="onEnter(this)" onblur="onLeave(this);monyValid(this);" TabIndex="4"></asp:TextBox>