0
A
回答
0
您可以將change
或input
事件偵聽器添加到它並驗證內容。爲了避免使用最初幾個字母的錯誤消息,您可以在輸入字符串包含空格後開始檢查。你不需要一個圖書館來做到這一點。簡單的老JS會完成這項工作。
var input = document.getElementById("myinput");
input.addEventListener('input', validate);
function validate(e) {
var validStart = ['why', 'when'];
var tmpVal;
if (this.value.indexOf(' ') !== -1) {
tmpVal = this.value.toLowerCase().trim();
if (validStart.indexOf(tmpVal) === -1) {
input.classList.add('notvalid');
} else {
input.classList.remove('notvalid');
}
} else {
input.classList.remove('notvalid');
}
}
的jsfiddle:http://jsfiddle.net/ofx2yhzm/1/
0
HTML:
<form name="myform" method="post" action="#" onsubmit="return validate()">
<input type="text" name="val" />
<input type="submit" value="Submit" />
</form>
的Javascript:
window.validate = function(){
data = document.forms['myform']['val'].value;
var starts = ['hi','he'];
for (var i = 0; i <= starts.length; i++)
if (data.indexOf(starts[i]) === 0) return true;
return false;
}
當然,你也可以使用正則表達式壽我想這是一個小效率越低。
像這樣的事情?:http://jsfiddle.net/4jasrbob/
0
您可以使用下面的正則表達式。 (這確實是原始的,應該根據自己的情況下得到改善。)
^(Why|Are).*$
HTML5輸入模式例如:
<form>
<input type="text" pattern="^(Why|Are).*$">
<input type="submit">
</form>
測試here。
0
非常相似,Strah的答案,但在這裏它是無論如何:
function checkValue(el) {
// Trim only leading whitespace so responds when first space entered
// and break into words
var words = el.value.replace(/^\s+/,'').split(/\s+/);
// List of allowed words
var allowed = ['are','what'];
// Element to write message based on source element
var msg = document.getElementById(el.id + 'Msg');
// Clear error message by default
msg.innerHTML = '';
// Only do something if at least one word has been entered
// Could also check if first word has more letters than
// longest allowed word
if (words.length > 1) {
// Check if first word is allowed
if (allowed.indexOf(words[0].toLowerCase()) == -1) {
msg.innerHTML = 'Input must start with one of ' + allowed.join(', ');
}
}
}
一些標記:
<input id="foo" oninput="checkValue(this);">
<span id="fooMsg"></span>
這允許用戶被賦予錯誤之前至少輸入一個單詞。還應該給他們一些屏幕上的提示,讓他們知道要使用哪些單詞,而不是先弄錯(這一定會發生很多)。
相關問題
- 1. 只允許某些字符
- 2. 只允許某些事件
- 3. 檢查contraint只允許某些字符
- 4. 只允許PHP中的某些字符
- 5. 允許某些字符只在中間,末尾或開始的單詞而不強制某些長度
- 6. 創建視圖以允許某些字段 - SQL
- 7. 如何在某些行上替換以某些字符開頭的單詞?
- 8. GREP如何打印以某些字符串開頭的單詞?
- 9. 只允許某些操作併發
- 10. 允許NodeJS只控制某些目錄
- 11. RDiscount:只允許使用某些標籤
- 12. 只允許某些類型的屬性
- 13. 只允許某些用戶編輯ASPxGridView
- 14. C++ 11只允許繼承某些類
- 15. firebase只允許設置某些屬性
- 16. 這隻會允許某些擴展嗎?
- 17. 只允許某些人查看文件
- 18. 做fsockopen只允許某些服務器?
- 19. Lucene搜索字段必須以某些字母開頭
- 20. 只允許HTML格式的某些用戶輸入
- 21. 只允許某些HTML標籤的用戶輸入
- 22. 只允許某些非字母字符在正則表達式
- 23. 只想允許字符串中的某些字符
- 24. Java正則表達式 - 只允許某些字符和數字
- 25. 只允許字符串中的某些字符
- 26. 只允許字符串中的某些字符
- 27. 編輯php.ini以允許某些功能
- 28. 我可以只允許某些視圖在iframe中呈現嗎?
- 29. C#UrlEncode但允許某些字符集
- 30. 允許某些字符通過$ _GET?
如果'Are'和'What'是唯一允許的詞語,爲什麼你需要禁止'Why',這裏的邏輯有問題? – adeneo 2014-11-01 22:28:18
@adeneo我懷疑「爲什麼」只是一個非單詞/一個單詞的一般例子。不是需要明確限制的東西。 – Sampson 2014-11-01 22:30:07
@ user1144397我可以問*爲什麼*您需要這種行爲? – Sampson 2014-11-01 22:31:19