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コードです。99.99のような 5 つの値のみを入力するには、この入力フィールドを JavaScript で検証する必要があります

4

5 に答える 5

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" />

Jクエリ

$(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 + "%");
        }
    });
});

これは基本的な要件に対して機能しますが、改善が必要な点がいくつかあります。ユーザーが複数の番号を削除しようとした場合、機能しないか、バックスペース キーを使用しようとした場合

于 2012-11-28T05:10:53.817 に答える
1

これはフォーマットであり、検証ではありませんが、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;
于 2012-11-28T04:55:26.590 に答える
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">
于 2012-11-28T05:14:43.073 に答える
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>

于 2012-11-28T05:24:01.690 に答える
0

これには keyup または keypress 関数を使用できます

<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>
于 2012-11-28T04:59:49.163 に答える