我有一個文本框asp.net服務器控件。我正在修改JavaScript的文本框的值,我想要檢測文本框文本何時更改。我嘗試了onchange事件,當文本改變時它會被丟失。但在我的情況下,我從Javascript中更改文本。我怎麼能做到這一點?如何從javascript中檢測文本框更改事件
回答
更新value
屬性不會觸發更改事件。更改事件由用戶觸發。
你可以寫從而改變價值和做你需要做其他的功能......
function changeTextarea(str) {
document.getElementById('a').value = str;
// Whatever else you need to do.
}
...或輪詢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);
})();
...或自己顯式調用onchange()
事件。
document.getElementById('a').onchange();
(假設你設定的事件了onchange
財產。)
的解決方法是不是非常偉大的解決方案。無論哪種方式,當更新textarea
的value
屬性時,您都需要進行一些干預以觸發額外的代碼。
如果你可以使用jQuery,它會是這樣的
$('#id_of_text_area').change(function(){
//do something
});
你可以強制回傳從JavaScript,因此強制頁面重新加載事件。在Page.GetPostBackEventReference()中,您可以處理事件並可能觸發其他事件。
這不是一個很好的解決方案和吼聲我真的建議你做的這一切直通JavaScript或下降的JavaScript,讓.NET hadle一切,或許與Ajax.NET
以下link說明你做藿對於一個普通的按鈕,但它不應該很難做出onchange事件。
使用jQuery你可以指定一個「變」處理程序,並調用處理程序是這樣的:
<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>
爲什麼不直接將'DetectChange'傳遞給'click()'方法? – alex 2011-04-26 10:53:34
@Alex OP陳述'但在我的情況下,我從Javascript中更改文本,所以我使用按鈕的單擊事件來模擬該場景的元素。我不知道'OP'使用的是什麼,或者它是如何調用的,所以我只是簡單地做了一些類似的演示。你是正確的,'.change'可以通過點擊調用,如果這符合OP的需求,那麼很好。 – 2011-04-26 11:24:52
- 1. 文本框更改事件
- 2. 如何使用jQuery事件檢測輸入框中的更改?
- 3. 文本框文本更改事件
- 4. 檢測DOM更改事件
- 5. 需要檢測jquery中模糊事件的文本框中的值更改
- 6. 文本框更改事件 - Java腳本
- 7. 如何在用戶將文本拖放到文本框中時使用JQuery檢測值更改事件?
- 8. 使用純javascript檢測更改的輸入文本框
- 9. 檢測文本框中沒有更改的文本
- 10. 如何不斷檢查android中的文本更改事件?
- 11. 如何讓文本框的前值jQuery中的更改事件
- 12. 檢測文本更改jquery
- 13. 如何檢測文件更改VBS
- 14. django如何檢測文件更改
- 15. 如何檢測文件更改?
- 16. 如何更改Excel中的文本框的內容從javascript
- 17. jQuery文本框更改事件
- 18. 取消WPF文本框更改事件
- 19. Datareport文本框更改事件
- 20. 更改事件內的文本框值?
- 21. 贏得文本框Rt更改事件
- 22. 如何檢測黑莓文本框字段上的事件?
- 23. 從C#異步回調後檢測文本框更改
- 24. Javascript。如何檢測window.document何時更改?
- 25. Javascript事件檢測
- 26. JavaScript從文本框文本中更改背景圖片
- 27. 如何檢測在文本框中
- 28. 如何檢測Golang中打開文件的文件名更改
- 29. 如何檢測Android中的文件或文件夾更改?
- 30. 如何在R數據框中正確檢測順序事件更改
你肯定能做到這一點...見下文。 – 2011-04-26 07:22:21
@Cos這是jQuery,其中OP從未提及過。你也明確地調用'change()',這基本上是我在我的答案中提出的。 – alex 2011-04-26 07:23:27
@Alex jquery是javascript(或更確切地說是一個javascript集合),並且證明調用'.change()'將實現OP提出的目標是更好的指導,可以「做任何你需要做的事情」 – 2011-04-26 10:34:04