.keyup或.change事件触发jquery中的只读字段?

SSS*_*SSS 5 jquery

我有输入字段列表.其中一些是只读字段.我正在使用.keyup()事件来触发输入字段中的某些更改.但它不会影响readonly字段.不知怎的,我也想改变这些领域.有帮助吗?

mgi*_*nbr 9

如果您调用focus只读输入字段,则会触发keyup事件.但是,键入该字段不会更改其值(毕竟,它是只读的).也许您需要的是监听其属性的变化?value

我建议听input,并propertyChange这个答案建议:

$('input').bind('input propertychange', function() {
    // Do something
});
Run Code Online (Sandbox Code Playgroud)

这样,当您的输入值发生变化时(从任何方式),您将收到通知.编辑:如果以编程方式更改值,则不起作用 - 对于这种情况,唯一的跨浏览器可行替代方法涉及轮询(例如).更好的选择可能是使用诸如knockout.js之类的框架,它可以为您自动执行此操作,同时在视图和模型之间提供清晰的分离.这是一个例子.


更新:我记得在删除的答案中阅读你的评论,说明你是以编程方式设置输入的值,这是正确的吗?(有些用户可以使用10k代表恢复它吗?)在这种情况下,为什么不让更改值的代码直接触发监听器呢?

$(link).click(function() {
    $(readonlyInput)
        .val("some val") // Update the value
        .trigger('keyup'); // Trigger the listener
});
Run Code Online (Sandbox Code Playgroud)