Trường văn bản thông thường, người dùng nhập chuỗi. Kiểm tra xem a) có gì đó trong đầu vào, b) không có khoảng trống nào trong đầu vào, và c) là số nguyên, không có ký tự nào khác. Sau đó, nút gửi. Bạn sẽ lưu ý rằng tôi không sử dụng hành vi html, không có onclick trong đầu vào, phân tách Nội dung/Trình bày/Hành vi nghiêm ngặt.javascript focus() không tập trung
HTML của tôi:
<form name="basicText" id="basicText" action="">
<p>Enter any ol' integer:
<input type="text" id="inputBox" name="inputBox" size="14"/>
<input value = "Next...?" type="submit" id="mySubmitBtn" name="mySubmitBtn"/>
</p>
</form>
<script src="js/w1bscript.js" type="text/javascript"></script>
cũng Lưu ý rằng ngoài javascript tập tin được thêm vào cuối của vì vậy tất cả các yếu tố có thể tải (không lo lắng về onload ngay bây giờ).
JavaScript:
var myButton1 = document.getElementById("mySubmitBtn");
var myForm1 = document.getElementById("basicText");
var myTextBox = myForm1.inputBox;
function submitPress() {
if(myTextBox.value.length == 0) {
alert("You didn't enter anything! Once more time, with feeling...")
basicText.focus();
basicText.select();
} else if(/\s/.test(myTextBox.value)) {
alert("Eh... No spaces. Just integers. Try again...");
basicText.focus();
basicText.select();
} else if (isNaN(myTextBox.value)==true) {
alert("Eh... Gonna need you to enter ONLY digits this time. kthnx.");
basicText.focus();
basicText.select();
} else {
// The textbox isn't empty, and there's no spaces. Good.
alert("you've passed the test!")
}
}
myButton1.addEventListener('click', submitPress, false);
Khi tôi nhập một đầu vào không chính xác, logic hoạt động, nhưng con trỏ không được tập trung trở lại vào hộp văn bản, không có vấn đề gì trình duyệt tôi sử dụng.
Fiddle: http://jsfiddle.net/2CNeG/
Cảm ơn bạn, Don
@DonG Bạn cũng có vẻ đang gửi biểu mẫu bất kể qua xác thực hay không. – bfavaretto
Yup; nó sẽ tốt hơn cho anh ta để sử dụng type = 'button' --OR-- để trả về false trong hàm xác nhận cho những đường dẫn trong đó xác thực thất bại. –
Được rồi, tôi thấy quan điểm của bạn, tôi đã thay đổi nó thành myTextBox.focus(); và vẫn không tập trung vào hộp nhập/văn bản. – DonG