javascript - js怎么判斷input輸入的值是數(shù)字,不小于等于0,不使用alert,而在同一行上用紅色字體提示用戶(hù)
問(wèn)題描述
js怎么判斷input輸入的值是數(shù)字,不小于等于0,可以為小數(shù)。如果不符合條件,在%后面以紅色字提示用戶(hù),TKS!
問(wèn)題解答
回答1:判斷焦點(diǎn)是否在該input內(nèi)(或者通過(guò)焦點(diǎn)離開(kāi)事件) 然后進(jìn)行傳值到j(luò)s方法類(lèi)進(jìn)行判斷 根據(jù)你的要求進(jìn)行判斷
回答2:document.getElementById(’ratio’).onchange = function(){ var val = this.value; if( val * 1 == NaN || val <= 0 ) return false; //報(bào)錯(cuò)//正確代碼};document.getElementById(’ratio’).onkeyup = function(){}; //也行回答3:
CSS:
.red_border { border: 1px solid red; // 紅框樣式}.red_text { color: red; // 紅色提示文字樣式}
HTML:
<td class='form-inline'> <input type='text' name='post[post_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)) {// 錯(cuò)誤this.className = ’red_border’;tip.innerHTML = ’出現(xiàn)錯(cuò)誤’; } else {this.className = ’’;tip.innerHTML = ’’; }};回答4:
手機(jī)簡(jiǎn)答,input里加pattern屬性,使用正則驗(yàn)證內(nèi)容,然后css里使用input:invalid把input里邊不合規(guī)則的內(nèi)容標(biāo)紅(就紅框紅字啊啥的),后邊的紅字提示p緊跟著input寫(xiě),然后用
p {display:none;color:red;}input:invalid+p {display:block;}
這樣的規(guī)則搞出來(lái),應(yīng)該就差不多了(標(biāo)簽換下id,我手機(jī)就不多碼字了)。不過(guò)如果需要兼容到IE9的話(huà),可能需要再寫(xiě)個(gè)兼容……
參考:
MDN - 表單驗(yàn)證
