9
A
回答
13
攔截字段的關鍵事件,在輸入時檢測非法字符,防止它們進入字段,並在字段(插入頁面)附近添加臨時msg,以解釋允許使用哪些字符或值。彈出警報是在打字過程中提供反饋的不好方法。
然後,在提交之前再次驗證,因爲還有其他方法可以將數據導入字段(拖放,複製/粘貼等),以至於您可能沒有抓到所有內容。
下面是僅兩個整數和小數只顯示與臨時的消息字段時無效鍵被鍵入的一個jQuery例如:
工作的jsfiddle:http://jsfiddle.net/jfriend00/CkDTy/
$(".integer").keypress(function(e) {
if (e.which < 48 || e.which > 57) {
showAdvice(this, "Integer values only");
return(false);
}
});
$(".decimal").keypress(function(e) {
// 46 is a period
if (e.which != 46 && (e.which < 48 || e.which > 57)) {
showAdvice(this, "Decimal numbers only");
return(false);
}
if (e.which == 46 && this.value.indexOf(".") != -1) {
showAdvice(this, "Only one period allowed in decimal numbers");
return(false); // only one decimal allowed
}
});
function showAdvice(obj, msg) {
$("#singleAdvice").stop(true, false).remove();
$('<span id="singleAdvice" class="advice">' + msg + '</span>').insertAfter(obj);
$("#singleAdvice").delay(4000).fadeOut(1500);
}
0
這裏有一個小的jQuery防止非 - 數字輸入:
$(function() {
$('input').bind('keyup', function(event) {
var currValue = $(this).val();
if(currValue.search(/[^0-9]/) != -1)
{
// Change this to something less obnoxious
alert('Only numerical inputs please');
}
$(this).val(currValue.replace(/[^0-9]/, ''));
});
});
0
您可以添加一個事件(按下按鍵)並檢測小數點是否已被按下是否服務。同樣在表單提交中,使用正則表達式來檢查提交的數據是否正確(因爲用戶可以使用像螢火蟲一樣的實時編輯器來僞造數據)。另外,請確保在用戶禁用javascript的情況下仔細檢查您的服務器端。
例如:
<input type="text" onkeypress="checkDecimal();" />
<input type="submit" onclick="checkBeforeSubmit();" />
function checkDecimal() {
// your code goes here
}
function checkBeforeSubmit() {
// your code goes here
}
您更好地使用相同的功能,因爲它基本上是相同的事情,從兩個事件調用它。
在服務器端,再次檢查提交的數據
相關問題
- 1. 如何防止用戶輸入?
- 2. 如何防止用戶輸入褻瀆?
- 3. Android:如何防止用戶輸入小數點後3位以上的數字
- 4. 如何防止用戶輸入錯誤的輸入?
- 5. 如何防止用戶輸入零作爲輸入?
- 6. 輸出用戶輸入 - 防止xss
- 7. 如何防止用戶輸入任何數據時滾動ipad
- 8. 如何防止重複的用戶輸入數組?
- 9. 如何防止用戶將數據輸入到DataGridViewComboBoxCells中?
- 10. 我們如何防止用戶輸入負數?
- 11. 如何防止用戶多次輸入數據(NSDate)
- 12. 如何防止用戶輸入字母或數字?
- 13. 如何防止空輸入?
- 14. 如何防止reloadRowsAtIndexPaths阻止用戶輸入?
- 15. CakePHP的防止用戶輸入URL
- 16. 防止用戶更改輸入法
- 17. 運行Minitest時防止用戶輸入
- 18. 防止用戶輸入某些字符?
- 19. 防止用戶輸入日期
- 20. 防止用戶輸入一次註銷
- 21. 防止用戶輸入URL的值
- 22. 防止用戶輸入過大PHP「允許的內存大小」
- 23. 如何防止用戶在html表單中輸入禁止的用戶名?
- 24. 如何防止用戶輸入任何東西在bash腳本
- 25. 如何防止用戶使用Javascript輸入特定的密鑰
- 26. 如何防止用戶使用JQuery輸入特定值?
- 27. 如何防止EditText在用戶輸入時調整其自身大小?
- 28. REACT - 防止小數點後2位小數點後的輸入
- 29. 如何讓用戶只輸入小數?
- 30. 防止用戶在小數點前2位後輸入更多數字
@brodie:雖然這不是JavaScript/HTML答案。 – animuson
哎呀,yep已刪除評論 – brodie
要清楚:雖然我們*可以*在Javascript中檢查這些東西以獲得良好的用戶體驗,它將*不*防止禁用JavaScript的用戶無法輸入這些值。這不應該是你的最後防線,還需要進行服務器端驗證。 (我敢打賭你知道這一點,但未來的讀者可能不會。) – Matchu