現在我有一個輸入字段是這樣的:HTML輸入不允許號
<input class="form-control" type="text"/>
但它劇照允許數字的輸入。
我希望輸入名稱,並希望在字符串中包含數字時顯示錯誤消息。我怎樣才能做到這一點?
現在我有一個輸入字段是這樣的:HTML輸入不允許號
<input class="form-control" type="text"/>
但它劇照允許數字的輸入。
我希望輸入名稱,並希望在字符串中包含數字時顯示錯誤消息。我怎樣才能做到這一點?
您可以使用本機HTML5 field validation
如電子郵件驗證(fiddle): <input type="text" title="email" pattern="[^@][email protected][^@]+\.[a-zA-Z]{2,6}" />
針對您的特殊情況下,你可以使用正則表達式像pattern="[a-zA-Z]*"
(fiddle)
當您提交表單它以紅色邊框突出顯示出驗證錯誤。在不同的瀏覽器中,它的行爲會略有不同。
我不認爲有覆蓋每個默認樣式的標準方式,但是有瀏覽器特定的方式來執行此操作(here)。
對於一些風格,你可以有CSS掛鉤到位更改see here
編輯:更新的小提琴。
不錯的主意,但可能不支持舊版瀏覽器。 –
支持Chrome 5+,IE10 +,FF4 +,Opera9.6 +,在Safari中不支持。 – Patrick
@MichaelGiovanniPumo一個polyfill應該照顧舊版瀏覽器, –
您可以使用preg_match(http://php.net/manual/en/function.preg-match.php)在PHP中搜索數字。
if (preg_match('/^[0-9]{1,}/', $value)) {
echo "ERROR";
} else {
echo "OK";
}
如果你想用JS來做,你可以使用match()
。 http://www.w3schools.com/jsref/jsref_match.asp
問題是關於HTML,即客戶端驗證。 PHP只能在您提交表單後驗證輸入 –
好的,不會推薦。因爲它非常不安全。但不清楚它應該是純粹的HTML。 – TheFrozenOne
您有幾種選擇....
不管選項,您將使用以某種方式或形式的正則表達式。
你可以做到這一點使用JavaScript
客戶端...
function Validate() {
var inputValue = document.getElementById("test").value;
var reg = new RegExp('^\\d+$');
var test = reg.test(inputValue);
//--Do something with test--
console.log(test);
}
<input id="test" class="form-control" type="text" />
<button onClick="Validate()">Validate</button>
如果只是普通的HTML
沒有服務器端代碼,你將需要使用JavaScript
。
編輯
而且據我所知,這是在所有的瀏覽器都支持支持JavaScript
不管版本。
我不想在JavaScript中進行驗證。我想將它保存在HTML中,並在輸入錯誤時獲得像消息一樣的整潔瀏覽器支持。 –
您可能需要在客戶端使用JavaScript或某種服務器端代碼。 HTML5具有文本框的模式屬性,但正如我所說...它只支持現代瀏覽器...任何使用IE9等舊瀏覽器的用戶都無法正確驗證。 – Patrick
那對我來說沒問題。對舊版瀏覽器的支持不是優先事項。 –
沒有輸入alows只是文字:
http://www.w3schools.com/html/html_form_input_types.asp
...你可以輸入嘗試JS +動作一樣的onkeydown
http://www.w3schools.com/jsref/event_onkeydown.asp
和正則表達式(只能是字母)驗證
可以更好的控制會發生什麼情況時好時壞的驗證。只有警報或改變顏色等
這會幫助你鍵入的字符只有:
$(function() {
$('#txtNumeric').keydown(function (e) {
if (e.shiftKey || e.ctrlKey || e.altKey) {
e.preventDefault();
} else {
var key = e.keyCode;
if (!((key == 8) || (key == 32) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90))) {
e.preventDefault();
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<b>Enter Text:</b>
<input type="text" id="txtNumeric" />
</div>
你有什麼已經嘗試過?也許你可以添加這段代碼。 – Vinc199789
也......是這個JUST HTML?或者你使用.net或php或java或其他類型的服務器代碼? – Patrick
Sry,格式化出錯了。這應該是純HTML驗證。 –