2012-11-28 83 views
0
<label class="user-reg-label fl">Percentage:<span class="required">*</span></label> 
    <input class="user-reg-input fl" type="text" name="Percentage[]" id="Percentage1" value="" maxlength="5" /> 

這是我的HTML代碼。 我需要驗證此輸入字段中使用JavaScript進入像99.99使用5值驗證文本字段

+1

如果通過「值」您的意思是「字符」,這看起來像6而不是5我。 – Madbreaks

+0

哦對不起。編輯 –

+0

它只驗證6個字符。那麼你的問題是什麼? – MVCKarl

回答

1

這是格式化,而不是隻驗證5個值,但它似乎是什麼OP真正需要的(我認爲) 。

var input = document.getElementById("Percentage1"), 
    onlyNumbers = input.value.replace(/\D/g,""), // Remove all nondigits 
    cleanNumbers = onlyNumbers.substr(0, 4); // Limit to four digits 

// Add decimal if more than two digits in length 
if(cleanNumbers.length > 2) 
{ 
    cleanNumbers = cleanNumbers.substr(0, 2) + "." + cleanNumbers.substr(2); 
} 

input.value = cleanNumbers; 
+0

我需要用戶只輸入兩個數字,然後點應輸出,如果他輸入另一個數字nad,如果需要後小數點後兩個數字。 –

+0

您希望輸入元素在輸入時格式化? –

+0

耶可能會像99,然後如果他輸入任何值,它應該是小數,然後任何數字和可愛% –

0

您可以使用KEYUP或按鍵功能爲這個

<input onkeyup="myFunction()" class="user-reg-input fl" type="text" name="Percentage[]" id="Percentage1" value="" maxlength="6" /> 

function myFunction() 
{ 
var input = document.getElementById("Percentage1"); 

if(input.value.length > 6) 
{ 
alert("too many characters"); 
return false; 
} 
} 

更新:

<input type="text" id='text_field' onkeyup="check()"/> 
    <script> 
     function check() 
     { 
      var len=document.getElementById('text_field').value.length; 
      if (len==2) 
       document.getElementById('text_field').value=document.getElementById('text_field').value+"."; 
      if (len==5) 
       document.getElementById('text_field').value=document.getElementById('text_field').value+"%"; 
     } 
</script> 
+0

謝謝!會檢查出來 –

1

使用jQuery像下面的作品。

文本框

<input class="user-reg-input fl" type="text" name="Percentage[]" id="Percentage1" value="" onpaste="return false" 
     onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;" maxlength="6" /> 

jQuery的

$(document).ready(function() 
    { 
    $('#Percentage1').keyup(function (event) 
    { 
     var currentValue = $(this).val(); 
     var length = currentValue.length; 

     if (length == 2) 
     { 
      $(this).val(currentValue + "."); 
     } 
     else if (length == 5) 
     { 
      $(this).val(currentValue + "%"); 
     } 
    }); 
}); 

這適用於您的基本要求,但是有一些需要改進的幾件事情。如果用戶試圖刪除多個號碼不工作或者如果他們試圖使用退格鍵

+0

謝謝!將檢查出 –

+0

我會說我的輸入按鈕約束以及@Dinesh Javascript代碼(我做了同樣的答案,但使用Jquery)可能是用戶自動格式化方面的最佳答案 – MVCKarl

+0

我完成了這個。但有一個pblm。如果退後空間,然後pblm上升..任何解決方案? –

0

好吧,那麼只有如果你把其中的文本字段「99.99%」型模式,將驗證

<script type="text/javascript"> 
function fnc(){ 
pattern=/\d+[.]+\d+[%]/g; 
text=document.getElementById("atext").value; 
x=pattern.test(text); 
alert(x); 
} 
</script> 
<input type="text" maxlength="6" id="atext"> 
<input type="button" onClick="fnc()" value="click me"> 
+0

謝謝!將檢查出來 –

0

試試這個,

隨着腳本部分

<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#test').blur(function() { 
     if ($(this).val().match('(^100(\.0{1,2})?$)|(^([1-9]([0-9])?|0)(\.[0-9]{1,2})?$)')) { 
       alert("Percentage Matched");//Any thing which you want 

      } 
      else 
       alert("Not Valid Input"); 
     }); 
    }); 
</script> 

和代碼文本框

<body> 
<form id="form1" runat="server"> 
<div> 
<asp:TextBox ID="test" runat="server"></asp:TextBox> 
</div> 
</form> 

+0

謝謝!將檢查出來 –