我有輸入欄的列表。其中一些是隻讀字段。 我正在使用.keyup()事件來觸發輸入字段中的某些內容發生變化。 但它不會影響只讀字段。 不知何故,我想改變這些領域。 有什麼幫助嗎?.keyup或.change事件觸發在jquery只讀字段?
回答
如果您在只讀輸入字段中調用focus
,則keyup
事件將失火。但是,輸入該字段將不會更改其值(因爲它是隻讀的)。也許你需要的是傾聽其value
屬性中的更改嗎?
我建議聽input
和propertyChange
爲this answer建議:
$('input').bind('input propertychange', function() {
// Do something
});
這樣的時候,你會被告知您的輸入值發生變化(
從任何手段
)。 編輯:如果以編程方式更改值,則不起作用 - 對於這種情況,唯一跨瀏覽器可行的備選項涉及輪詢(例如this)。一個更好的選擇可以使用一個框架,如knockout.js,它可以爲你自動化,同時在視圖和模型之間提供清晰的分離。這裏是an example。
更新:我記得讀您的評論中已刪除的回答,說明你編程設置輸入的值,是正確的? (可以使用10k代表一些用戶恢復它?)在這種情況下,爲什麼不改變值直接觸發監聽器的代碼?
$(link).click(function() {
$(readonlyInput)
.val("some val") // Update the value
.trigger('keyup'); // Trigger the listener
});
是否也適用於dateselector字段?在哪個選項中,爲只讀字段選擇新的日期值更改? – SSS 2012-08-13 06:06:29
正如我在我的編輯中所說的那樣,這個解決方案在您以編程方式更改該值時不起作用(當該字段不是隻讀時,它**工作,即使對於'type =「date」',當您選擇日期圖形選擇器)。但是用knockout.js很容易,[這裏是一個例子](http://jsfiddle.net/H68Sb/)(這個特殊情況根本不需要jQuery,但是通常很容易將兩個框架結合在一起頁面如有必要)。對不起,如果沒有回答你的問題,但我真的不知道除了輪詢輸入值還有什麼辦法...或者只是直接調用監聽器... – mgibsonbr 2012-08-13 07:11:51
非常感謝你:)它工作正常.. @mgibsonbr – SSS 2012-08-13 09:07:27
看來只讀字段不聽這意味着輸入類似「輸入」,「KEYUP」等活動,如果你認爲這是一個合乎邏輯的行爲,他們仍然聽變化事件,那麼爲什麼不使用「平變化」它,而不是輸入事件,使用jQuery是相當容易: 爲
$("input").filter(function(){
return $(this).prop("readonly");
}).on("change", function(){
// do something
});
而對於輸入其餘是不是隻讀
$("input").filter(function(){
return !$(this).prop("readonly");
}).on("keyup", function(){
// do the same thing something
});
- 1. 對於禁用或只讀字段未觸發MouseClick事件?
- 2. jQuery .change()事件在IE中未觸發
- 3. jQuery:.change()爲什麼不觸發事件
- 4. KEYUP事件觸發自動
- 5. jQuery table sum change keyup()?
- 6. 當使用.trigger('change')時,jQuery change()事件不會觸發
- 7. jQuery .change事件不能使用輸入:已設置只讀的文本字段
- 8. jQuery不觸發.change
- 9. ng-change事件只在ng-repeat中觸發一次
- 10. 如何使用jquery在剪貼板上觸發keyup事件?
- 11. jQuery .change()事件在新版本中使用.click()觸發?
- 12. jQuery bootstrap-switch 3.0.2沒有在輸入上觸發change事件
- 13. jQuery插件事件只觸發一次
- 14. jQuery的.change()不觸發
- 15. 文本字段「改變」事件觸發只在模糊
- 16. 爲什麼我的jQuery觸發keyup事件會丟失?
- 17. Jquery keyup或keydown事件不起作用
- 18. jquery應該只觸發一個事件
- 19. JQuery的.change - 事件
- 20. Jquery的列表框Change事件不會觸發鍵盤滾動
- 21. 爲什麼jQuery中沒有這個.change事件觸發?
- 22. jQuery:如何停止從blur()處理程序觸發change()事件?
- 23. jQuery .change事件不會觸發ASP MVC CheckBoxFor
- 24. 數字框上KEYUP不觸發事件時,值爲0
- 25. jquery觸發事件
- 26. jQuery change()在頁面加載時觸發
- 27. .change()在jQuery UI之後不觸發
- 28. jQuery change()在按空格時不觸發?
- 29. 使用jQuery live或delegate觸發事件
- 30. 使用Jquery或Javascript觸發mousemove事件
_「不知怎的,我想改變那些領域也「__ - 嗯?你問如何改變JS只讀字段的值?或者問一個只讀字段被JS更改時是否有辦法自動觸發事件? – nnnnnn 2012-08-13 06:25:19
問:有沒有辦法在js更改只讀字段時自動觸發事件? – SSS 2012-08-13 08:45:01