2013-08-28 26 views
0

我正在創建一個我想添加字段驗證的Web表單。目前的方法參與到輸入標籤指定一個「模式」屬性如下:用於輸入的「模式」屬性的替代

<input id="foo" class="span7" type="text" pattern="^[0-9]*\.?[0-9]*$"> 

然而,這種做法意外的行爲,並在我從MDN讀,是不​​是在所有的主流瀏覽器的支持。有沒有這種功能的替代品?

要清楚,如果文本框的內容與指定的正則表達式不匹配,我希望觸發文體效果。我意識到這可以通過Jquery和添加/刪除類來實現,但是這感覺效率很低。

回答

1

確實沒有高效這樣做的方法;你需要使用pattern或者做你自己的事件監聽器,它在關鍵事件上運行自己的正則表達式。

+0

在這種情況下,你知道爲什麼上面提供的例子並不能正常工作?無效僞類適用於所有輸入,即使那些似乎遵循正則表達式的輸入。 – cardinal19821

+0

你必須把它放在jsfiddle或codepen上,這樣我才能看到你在說什麼。 – borbulon

0

試試這個:

HTML:

<input id="foo" class="span7" type="text" onblur="checkInput(this.value,'^[0-9]*\.?[0-9]*$');"> 

的JavaScript:

<script> 
function checkInput(txt, pattern) { 
    var re = new RegExp(pattern); 
    var x = re.test(txt); 
    //--- if x != true then show error message 
} 
</script> 
相關問題