Tôi có một hộp điều khiển máy chủ asp.net. Tôi đang sửa đổi giá trị của textbox từ javascript tôi muốn phát hiện khi văn bản textbox được thay đổi. Tôi đã thử sự kiện onchange mà được gọi là trên foucs bị mất khi văn bản thay đổi. Nhưng trong trường hợp của tôi, tôi là một văn bản thay đổi từ Javascript. Làm thế nào tôi có thể đạt được điều này?Cách phát hiện sự kiện thay đổi hộp văn bản từ javascript
Trả lời
Cập nhật thuộc tính value
sẽ không kích hoạt sự kiện thay đổi. Sự kiện thay đổi được kích hoạt bởi người dùng.
Bạn có thể viết một hàm làm thay đổi giá trị và làm bất cứ điều gì khác mà bạn cần phải làm gì ...
function changeTextarea(str) {
document.getElementById('a').value = str;
// Whatever else you need to do.
}
... hoặc thăm dò ý kiến giá trị 's textarea
...
(function() {
var text = getText();
var getText = function() {
return document.getElementById('a').value;
}
setInterval(function() {
var newtext = getText();
if (text !== newText) {
// The value has changed.
}
text = newText;
}, 100);
})();
... hoặc tự gọi chính sự kiện onchange()
.
document.getElementById('a').onchange();
(Giả sử bạn thiết lập sự kiện này với onchange
tài sản.)
Các cách giải quyết không phải là khủng khiếp giải pháp tuyệt vời. Dù bằng cách nào, bạn cần phải thực hiện một số can thiệp để kích hoạt mã phụ khi cập nhật thuộc tính value
của textarea
.
Nếu bạn có thể sử dụng jQuery, nó sẽ là một cái gì đó như thế này
$('#id_of_text_area').change(function(){
//do something
});
Bạn có thể buộc một postback từ javascript và do đó buộc một sự kiện tải lại trang. Trong Page.GetPostBackEventReference(), bạn có thể xử lý sự kiện và có thể kích hoạt một số sự kiện khác.
Đây không phải là một giải pháp thougth tốt và tôi thực sự khuyên bạn nên làm điều đó tất cả thru javascript hoặc thả javascript và để cho tất cả mọi thứ NET hadle, có lẽ với Ajax.NET
sau đây link giải thích hwo bạn làm điều đó cho một nút bình thường, nhưng nó không phải là khó để làm cho nó cho một sự kiện onchange.
Sử dụng JQuery bạn có thể gán một handler 'thay đổi' và gọi xử lý như thế này:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
//makes 'DetectChange' the handler when TextBox1 changes...
$('#TextBox1').change(function() {
DetectChange();
});
});
function DetectChange() {
alert("TextBox1 has been changed");
}
function ClickTheButton() {
// .val actually 'changes the value'
// while you have to add .change() to invoke the actual change event handler...
$('#TextBox1').val("Changed When Button Clicked").change();
//return false prevents the click event of the button from doing a post back
//keeping everything on the client for this sample..
return false;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Button1" type="button" value="Change TextBox1" onclick="return ClickTheButton();" />
</div>
</form>
</body>
</html>
Tại sao bạn không chuyển trực tiếp 'DetectChange' sang phương thức' click() '? – alex
@Alex OP tiểu bang 'Nhưng trong trường hợp của tôi là một văn bản thay đổi từ Javascript' vì vậy tôi đã sử dụng sự kiện nhấp chuột của nút để mô phỏng yếu tố đó của kịch bản. Tôi không biết 'những gì' javascript OP sử dụng hoặc làm thế nào nó được gọi nên tôi chỉ ginned lên bản demo mà sẽ làm điều gì đó tương tự. Bạn đúng rằng '.change' có thể được gọi từ nhấp chuột và nếu đáp ứng nhu cầu của OP thì tuyệt vời. –
- 1. Sự kiện hộp văn bản Javascript
- 2. Sự kiện cho thay đổi văn bản
- 3. Sự kiện thay đổi văn bản Backbone.js
- 4. Phát hiện thay đổi của văn bản html
- 5. JQuery phát hiện sự kiện thay đổi lập trình
- 6. Kích thước văn bản thay đổi theo lập trình đang ngăn sự kiện thay đổi
- 7. Phát hiện một số văn bản đã được chọn trong một hộp văn bản
- 8. Sự kiện để phát hiện thay đổi kiểm soát số HTML5 trong Webkit/Chrome?
- 9. Sự kiện knockout.js theo dõi mọi thay đổi văn bản bên trong hộp văn bản đầu vào
- 10. Nhãn trên sự kiện thay đổi văn bản
- 11. sự kiện lựa chọn văn bản javascript
- 12. Thay đổi hộp văn bản từ một lớp
- 13. Phát hiện "giá trị" của trường nhập văn bản sau sự kiện keydown trong trường văn bản?
- 14. Phát hiện thay đổi trong văn bản không có nhãn
- 15. Làm cách nào để đính kèm sự kiện OnClick cho hộp văn bản được tạo javascript?
- 16. Sự kiện thay đổi thuộc tính javascript
- 17. Phát hiện sự kiện khóa kết hợp
- 18. Làm cách nào để phát hiện thay đổi trong thuộc tính Văn bản của một TextBlock?
- 19. Cách nhóm các tiện ích tổng hợp gwt thay đổi sự kiện dưới dạng sự kiện thay đổi
- 20. sự kiện nhấp nút bị mất do hộp cảnh báo trong hộp văn bản onblur sự kiện
- 21. Cách truy cập hộp văn bản HTML từ javascript?
- 22. Sự kiện "KeyPress" cho hộp văn bản WinForms bị thiếu?
- 23. Cách lấy Giá trị cũ với sự kiện onchange() trong hộp văn bản
- 24. bộ văn bản trên textfield/hộp với khuôn khổ tự động và nhận được sự kiện thay đổi
- 25. Sự kiện thay đổi kích hoạt jquery trên hộp kiểm
- 26. cách gọi sự kiện sau khi mất tiêu điểm từ hộp văn bản, asp.net mvc
- 27. cách phát hiện sự kiện từ một nhà máy
- 28. cách phát hiện sự kiện Đóng trang với ASP.NET
- 29. Cách phát hiện sự kiện bỏ chọn nút radio?
- 30. thay đổi phát hiện trong một Object Javascript
bạn chắc chắn nhất có thể làm được điều này ... xem dưới đây. –
@Cos Đó là với jQuery, trong đó OP không bao giờ được đề cập. Bạn cũng gọi một cách rõ ràng 'change()', về cơ bản những gì tôi đã gợi ý trong câu trả lời của tôi. – alex
@Alex jquery là javascript (hay đúng hơn là một tập hợp javascript) và chứng minh rằng việc gọi '.change()' sẽ thực hiện mục tiêu mà OP đặt ra là hướng dẫn tốt hơn rằng "làm bất cứ điều gì khác bạn cần làm" –