javascript - js怎么判断input输入的值是数字,不小于等于0,不使用alert,而在同一行上用红色字体提示用户
世界只因有你
世界只因有你 2017-06-28 09:27:53
[JavaScript讨论组]

js怎么判断input输入的值是数字,不小于等于0,可以为小数。如果不符合条件,在%后面以红色字提示用户,TKS!

世界只因有你
世界只因有你

全部回复(4)
三叔

判断焦点是否在该input内(或者通过焦点离开事件)
然后进行传值到js方法类进行判断 根据你的要求进行判断

天蓬老师
document.getElementById('ratio').onchange = function(){
    var val = this.value;
    if( val * 1 == NaN || val <= 0 )
    return false; //报错
    
    //正确代码
};

document.getElementById('ratio').onkeyup = function(){}; //也行
ringa_lee

CSS:

.red_border {
    border: 1px solid red; // 红框样式
}

.red_text {
    color: red; // 红色提示文字样式
}

HTML:

<td class="form-inline">
    <input type="text" class="form-control" name="post[post_ratio]" id="ratio" required value="" />&nbsp;&nbsp; %
    <span class="red_text"></span>
</td>

Javascript:

document.getElementById('ratio').onchange = function() {
    var val = this.value;
    var tip = this.getElementsByClassName('red_text')[0];

    if(isNaN(+val) || (!isNaN(+val) && +val <= 0)) {
        // 错误
        this.className = 'red_border';
        tip.innerHTML = '出现错误';
    } else {
        this.className = '';
        tip.innerHTML = '';
    }
};
世界只因有你

手机简答,input里加pattern属性,使用正则验证内容,然后css里使用input:invalid把input里边不合规则的内容标红(就红框红字啊啥的),后边的红字提示p紧跟着input写,然后用

p {display:none;color:red;}
input:invalid+p {display:block;}

这样的规则搞出来,应该就差不多了(标签换下id,我手机就不多码字了)。不过如果需要兼容到IE9的话,可能需要再写个兼容……


参考:

MDN - 表单验证

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号