Javascript 如何将文本框强制设置为;改为;即使用户没有键入任何内容。从nsIFilePicker设置的值

Javascript 如何将文本框强制设置为;改为;即使用户没有键入任何内容。从nsIFilePicker设置的值,javascript,firefox,firefox-addon,xul,Javascript,Firefox,Firefox Addon,Xul,我正在开发XUL Firefox扩展。我的一个窗口是“选项”首选项窗口,其中包括一个文本框。文本框应该包含一个文件路径。我使用一个按钮和nsIFilePicker让用户选择文件。框中的文本已更新,但更改永远不会反映在extensions首选项中。仅当用户直接在文本框中键入时,此功能才起作用。是否有任何方法可以“强制”应用更改,即使更改不是使用键盘进行的 onPrivKeyBtn: function() { const nsIFilePicker = CI.nsIFilePicker; v

我正在开发XUL Firefox扩展。我的一个窗口是“选项”首选项窗口,其中包括一个
文本框
文本框
应该包含一个文件路径。我使用一个按钮和
nsIFilePicker
让用户选择文件。框中的文本已更新,但更改永远不会反映在extensions首选项中。仅当用户直接在
文本框中键入时,此功能才起作用。是否有任何方法可以“强制”应用更改,即使更改不是使用键盘进行的

onPrivKeyBtn: function() {
  const nsIFilePicker = CI.nsIFilePicker;
  var fp = CC["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
  fp.init(window, "Select File", nsIFilePicker.modeOpen);
  fp.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterXML);
  if (fp.show() != nsIFilePicker.returnCancel) {
    var file = fp.file;
    var path = fp.file.path;
    document.getElementById("privKeyBox").value = path;
  }
}
正如我前面提到的,它是一个首选项窗口。因此,我检查了当直接在文本框中键入时,首选项是否已更新。只有通过
onPrivKeyBtn
功能进行更改时,它才会出现问题

谢谢

您可以设置而不是设置文本框的值

或者,具有
userChangedValue(elem)
方法

最后,您可以自己触发
change
事件(
.createEvent()
textbox.dispatchEvent()
),但这等于调用
.userChangedValue(elem)

,您可以设置而不是设置文本框的值

或者,具有
userChangedValue(elem)
方法


最后,您可以自己触发一个
change
事件(
.createEvent()
textbox.dispatchEvent()
),但这等于调用
.userChangedValue(elem)

只是为了清除,textbox
privKeyBox
预窗格中,文本框
privKeyBox
prefpane
中?