Heim > Fragen und Antworten > Hauptteil
Wie stellt js fest, dass der Eingabewert eine Zahl ist, nicht kleiner oder gleich 0, und eine Dezimalzahl sein kann? Wenn nicht teilnahmeberechtigt, 在%后面以红色字提示用户
, TKS!
天蓬老师2017-06-28 09:29:53
document.getElementById('ratio').onchange = function(){
var val = this.value;
if( val * 1 == NaN || val <= 0 )
return false; //报错
//正确代码
};
document.getElementById('ratio').onkeyup = function(){}; //也行
ringa_lee2017-06-28 09:29:53
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="" /> %
<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 = '';
}
};
世界只因有你2017-06-28 09:29:53
手机简答,input里加pattern属性,使用正则验证内容,然后css里使用input:invalid
把input里边不合规则的内容标红(就红框红字啊啥的),后边的红字提示p紧跟着input写,然后用
p {display:none;color:red;}
input:invalid+p {display:block;}
这样的规则搞出来,应该就差不多了(标签换下id,我手机就不多码字了)。不过如果需要兼容到IE9的话,可能需要再写个兼容……
参考:
MDN - 表单验证