Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证只有5个值的文本字段 百分比:*_Javascript_Html - Fatal编程技术网

Javascript 验证只有5个值的文本字段 百分比:*

Javascript 验证只有5个值的文本字段 百分比:*,javascript,html,Javascript,Html,这是我的html代码。 我需要使用javascript验证此输入字段,以便只输入5个值,如99.99 这是格式化,不是验证,但似乎是OP真正想要的(我想) 您可以使用keyup或keypress功能进行此操作 var input = document.getElementById("Percentage1"), onlyNumbers = input.value.replace(/\D/g,""), // Remove all nondigits cleanNumbers = o

这是我的html代码。 我需要使用javascript验证此输入字段,以便只输入5个值,如99.99


这是格式化,不是验证,但似乎是OP真正想要的(我想)


您可以使用keyup或keypress功能进行此操作

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;

函数myFunction()
{
var输入=document.getElementById(“百分比1”);
如果(input.value.length>6)
{
警告(“字符太多”);
返回false;
}
}
更新:

<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;
}
}

函数检查()
{
var len=document.getElementById('text_field').value.length;
如果(len==2)
document.getElementById('text_字段')。value=document.getElementById('text_字段')。value+”;
如果(len==5)
document.getElementById('text_字段')。value=document.getElementById('text_字段')。value+“%”;
}

使用Jquery,下面类似的方法可以工作

文本框

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

这适用于您的基本需求,但仍有一些地方需要改进。如果用户试图删除多个数字,则该操作无效,或者如果用户尝试使用退格键,则会出现一个文本字段,仅当您输入“99.99%”时,该字段才会生效

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

函数fnc(){
模式=/\d+[.]+\d+[%]/g;
text=document.getElementById(“atext”).value;
x=模式测试(文本);
警报(x);
}
试试这个

带脚本部分

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

$(文档).ready(函数(){
$('#test').blur(函数(){
if($(this).val().match(“(^100(\.0{1,2})$)|(^([1-9]([0-9])?|0)(\[0-9]{1,2})$)){
警报(“匹配百分比”);//您想要的任何东西
}
其他的
警报(“无效输入”);
});
});
和文本框的代码

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


如果“值”的意思是“字符”,那么在我看来是6个字符,而不是5个字符。它只验证了6个字符。那么你的问题是什么?你已经有了maxlength对吗?你实际上想做什么?稍微偏离主题,但你应该在输入中保留“%”,只需将字符放在另一个标记中输入旁边。理由是,,当格式化并将字符放在插入符号前面时,您将得到不期望的效果。我需要用户首先只输入两个数字,然后如果他输入另一个数字,则应输出点。如果需要,在小数点后输入两个数字。是的,可能像99,然后如果他输入任何值,则应显示为十进制,然后是任何数字和%i我会说我的输入按钮约束和@Dinesh Javascript代码(我做了相同的回答,但使用了Jquery)可能是最好的答案,因为我已经完成了这项工作。但是有一个pblm。如果按下back space,则pblm上升。。有解决办法吗?
    <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">
<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>