Tôi có một nút (<input type="submit">
). Khi nó được nhấp vào trang tải lại. Vì tôi có một số hàm jQuery hide()
được gọi khi tải trang, điều này khiến các thành phần này bị ẩn lần nữa. Làm thế nào để làm cho nút không làm gì, vì vậy tôi vẫn có thể thêm một số hành động xảy ra khi nút được nhấp nhưng không tải lại trang.Làm cách nào để tạo một nút HTML không tải lại trang
Trả lời
Sử dụng phần tử <button>
hoặc sử dụng <input type="button"/>
.
Bạn có thể thêm trình xử lý nhấp chuột vào nút với jQuery và trả về false.
$("input[type='submit']").click(function() { return false; });
hoặc
$("form").submit(function() { return false; });
Công việc này không hoạt động. Trả về false trong chrome, ít nhất là trong các phiên bản mới nhất, vẫn làm mới. – user3690202
Đây là câu trả lời duy nhất thực sự hiệu quả với tôi. Tôi chỉ aded trở lại sai trong chức năng của tôi và làm mới dừng lại ở cả safari và chrome. – VessoVit
Trong HTML:
<input type="submit" onclick="return false">
Với jQuery, một số biến thể tương tự, đã được đề cập.
Trong HTML:
<form onsubmit="return false">
</form>
để tránh làm mới ở tất cả các "nút", ngay cả với onclick giao.
không cần js hoặc jquery. để dừng tải lại trang chỉ cần chỉ định loại nút là 'nút'. nếu bạn không chỉ định loại nút, trình duyệt sẽ đặt nó thành 'đặt lại' hoặc 'gửi' phù thủy để tải lại trang.
<button type='button'>submit</button>
Như đã nêu trong một trong các nhận xét (burried) ở trên, điều này có thể được khắc phục bằng cách không đặt thẻ nút bên trong thẻ biểu mẫu. Khi nút ở bên ngoài biểu mẫu, trang không tự làm mới.
Tôi chưa thể nhận xét, vì vậy, tôi đăng bài này dưới dạng câu trả lời. Cách tốt nhất để tránh tải lại là cách @ user2868288 cho biết: sử dụng onsubmit
trên thẻ form
.
Từ tất cả các khả năng khác được đề cập ở đây, đó là cách duy nhất cho phép xác thực nhập dữ liệu trình duyệt HTML5 mới được kích hoạt (<button>
sẽ không làm điều đó hoặc trình xử lý jQuery/JS) và cho phép thông tin động jQuery/AJAX của bạn được thêm vào trang. Ví dụ:
<form id="frmData" onsubmit="return false">
<input type="email" id="txtEmail" name="input_email" required="" placeholder="Enter a valid e-mail" spellcheck="false"/>
<input type="tel" id="txtTel" name="input_tel" required="" placeholder="Enter your telephone number" spellcheck="false"/>
<input type="submit" id="btnSubmit" value="Send Info"/>
</form>
<script type="text/javascript">
$(document).ready(function(){
$('#btnSubmit').click(function() {
var tel = $("#txtTel").val();
var email = $("#txtEmail").val();
$.post("scripts/contact.php", {
tel1: tel,
email1: email
})
.done(function(data) {
$('#lblEstatus').append(data); // Appends status
if (data == "Received") {
$("#btnSubmit").attr('disabled', 'disabled'); // Disable doubleclickers.
}
})
.fail(function(xhr, textStatus, errorThrown) {
$('#lblEstatus').append("Error. Try later.");
});
});
});
</script>
Bạn có thể sử dụng biểu mẫu bao gồm nút gửi. Sau đó sử dụng jQuery để ngăn chặn hành vi mặc định của một hình thức:
$(document).ready(function($) {
$(document).on('submit', '#submit-form', function(event) {
event.preventDefault();
alert('page did not reload');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form id='submit-form'>
<button type='submit'>submit</button>
</form>
- 1. Làm cách nào để làm cho trang tải lại của Firefox khi nhấn nút quay lại?
- 2. Làm cách nào để tải flash để tải lại trang HTML gốc được nhúng vào?
- 3. Làm thế nào để tránh lặp lại tải lại video HTML trong cùng một trang?
- 4. Tải lại trang trên nút quay lại
- 5. Làm cách nào để tải lại div mà không cần tải lại toàn bộ trang?
- 6. Làm cách nào để tạo trang chính bằng HTML?
- 7. Làm cách nào để tạo một nút jsTree HTML mới với plugin CRRM chính xác?
- 8. Tải lại trang bắt buộc bằng neo html (#) - HTML & JS
- 9. Có thể xóa biểu mẫu và đặt lại (tải lại) trang bằng một nút không?
- 10. làm thế nào để tạo trang pdf đa từ html
- 11. Làm cách nào để tạo trang HTML động hoặc được tạo có thể tìm kiếm được?
- 12. Làm cách nào để tôi có thể sử dụng lại HTML/JSP trong một trang?
- 13. Làm cách nào để sử dụng lại mã html trong mọi trang html?
- 14. Làm cách nào để chỉnh sửa và tải lại HTML trong Firebug?
- 15. Trang làm mới nút quay lại
- 16. Có cách nào để chuyển biến số php sang trang khác bằng nút (html/php) không?
- 17. Làm cách nào để làm cho <iframes> chỉ tải trên một lần nhấp nút?
- 18. Tải lên nhiều nút - một trang
- 19. Cách tải lại Trang Chính từ bên trong một iFrame
- 20. Làm cách nào để buộc làm mới trang hoặc tải lại trong jQuery?
- 21. Làm thế nào để ngăn chặn tải trang trong trang html tĩnh
- 22. HTML - Thay đổi \ Cập nhật nội dung trang mà không cần refresh \ tải lại trang
- 23. Làm cách nào để tạo một HTML HTML 5 Ảnh canvas "lật trang" như bạn thường thấy trong Flash?
- 24. Làm cách nào để duy trì phiên hoạt động mà không cần tải lại trang?
- 25. Làm cách nào để tải lại trang mà không có cảnh báo POSTDATA trong Javascript?
- 26. Tải lại trang khi được truy cập bằng cách nhấp vào nút Quay lại trong Firefox
- 27. Quay trở lại nút trong một trang
- 28. Tạo một trang HTML JavaDoc
- 29. Làm cách nào để tạo một nút tĩnh trong ScrollView?
- 30. Tải một trang html khác từ javascript
Yếu tố
bạn vẫn có thể sử dụng sự kiện biểu mẫu onubmit và trả về false nếu bạn vẫn không muốn trả lại –
@AdamC Điều này không đúng. Không có trình duyệt làm mới khi bạn nhấp vào một