2012-11-19 67 views
0
<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#<%=txtNumeric.ClientID %>").focusout(function() { 
      var textvalue = $("#<%=txtNumeric.ClientID %>").val(); 
      if (!validateDecimal(textvalue)) 
       return false; 
      else { 
       $(this).removeClass("focus"); 
       return true; 
      } 
     }); 

    }); 

    function validateDecimal(value) { 
     var RE = new RegExp(/^\d\d*\.\d\d$/); 
     if (RE.test(value)) { 
      return true; 
     } else { 
      alert("Please Enter in XX.XX format !"); 
      $(this).addClass("focus");// this keyword is not working here !! 
      $(this).focus(); // this keyword is not working here !! 
      return false; 
     } 
    } 
</script> 

如何獲取被調用函數中當前asp文本框的id? bcuz這不起作用。有誰能夠幫助我 ?如何獲得jQuery文本框中的id id

+0

爲什麼不把它作爲參數傳遞? –

+0

我傾向於使用一個類,並找到使用它,它避免了混合服務器代碼與客戶端腳本。 – RubbleFord

回答

0

通控制對象在功能上也這樣

$(document).ready(function() { 
     $("#<%=txtNumeric.ClientID %>").focusout(function() { 
      var textvalue = $("#<%=txtNumeric.ClientID %>").val(); 
      if (!validateDecimal(textvalue,this)) 
       return false; 
      else { 
       $(this).removeClass("focus"); 
       return true; 
      } 
     }); 

    }); 

    function validateDecimal(value,ControlObject) { 
      var RE = new RegExp(/^\d\d*\.\d\d$/); 
      if (RE.test(value)) { 
       return true; 
      } else { 
       alert("Please Enter in XX.XX format !"); 
       $(ControlObject).addClass("focus");// this keyword is not working here !! 
       $(ControlObject).focus(); // this keyword is not working here !! 
       return false; 
      } 
     } 
+0

謝謝Rahul ......我得到了我的解決方案。 – user1817779

0

爲什麼不把它作爲一個參數傳遞給validateDecimal,例如 -

function validateDecimal(value, textbox) { 
    var RE = new RegExp(/^\d\d*\.\d\d$/); 
    if (RE.test(value)) { 
     return true; 
    } else { 
     alert("Please Enter in XX.XX format !"); 
     textbox.addClass("focus"); 
     textbox.focus(); 
     return false; 
    } 
} 

這樣說,我不認爲validateDecimal應該有任何邏輯來改變文本框。原因是每個函數只應做1件事,而validateDecimal只應該做驗證並返回true/false。更改文本框類/ etc的邏輯應該位於validateDecimal之外的另一個函數中。