Javascript 如何动态更改所选选项并在不重新加载的情况下进行更新?

Javascript 如何动态更改所选选项并在不重新加载的情况下进行更新?,javascript,html-select,onload,content-script,Javascript,Html Select,Onload,Content Script,这是很难找到一个好的搜索条件(所以请原谅,如果这个主题已经讨论过),以及明确的标题为这篇文章 我正在处理此外部网页:(需要登录) 我试图用value=“0”的选项覆盖默认选中的选项。我编写的自定义js代码确实提交了表单,但只有在页面加载之后才提交。尽管如此,我还是希望在此之前更改select值 以下是本页相关代码的一部分(当然我无法编辑): 你能为我找到解决办法吗?(如果仅JS更好) 非常感谢你阅读这篇文章,如果可以的话,请回答 大印第安人 请原谅我的英语 注: 结果页: 您可以尝试以下方法:

这是很难找到一个好的搜索条件(所以请原谅,如果这个主题已经讨论过),以及明确的标题为这篇文章

我正在处理此外部网页:(需要登录) 我试图用value=“0”的选项覆盖默认选中的选项。我编写的自定义js代码确实提交了表单,但只有在页面加载之后才提交。尽管如此,我还是希望在此之前更改select值

以下是本页相关代码的一部分(当然我无法编辑):

你能为我找到解决办法吗?(如果仅JS更好)

非常感谢你阅读这篇文章,如果可以的话,请回答

大印第安人

请原谅我的英语

注: 结果页:


您可以尝试以下方法:

  • 获取对select的引用
  • 循环它的选项
  • 如果选项的值为“0”,请选择它。否则,取消选择它
示例代码:

var elm = document.getElementsByName('noticeComp:mainForm:j_idt256')[0];
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);

for (var i = 0; i < elm.options.length; i++) {
    var option = elm.options[i];

  if (option.value === '0') {
    option.setAttribute('selected', 'selected');
  } else {
    option.removeAttribute('selected');
    }
}

elm.dispatchEvent(evt);

function submit() {
    // code
  console.log('gogo');
}
var elm=document.getElementsByName('noticeComp:mainForm:j_idt256')[0];
var evt=document.createEvent(“HTMLEvents”);
evt.initEvent(“变更”、假、真);
对于(var i=0;i

嗯,我的脚本能够选择正确的选项,然后通过提交表单刷新结果。我想做的是在第一次加载此页面时显示与选项值“0”(“Toutes les notices”)关联的结果!在提交之前?你想在哪里显示文本?我添加了一张结果列表的图片,我可以给你代码部分,但它很混乱(大表格),我不明白。如果选择了该选项,则该选项已显示在“选择”菜单中,对吗?我的错,它不够清晰。让我们从头开始!当我加载页面时,我会看到与defaultSelected选项(“1”)的值相对应的结果。我的代码将所选选项更改为“0”,并触发“更改”事件,该事件将触发“提交”事件。因此,页面第一次加载错误的结果列表,然后再次加载以在选择正确选项的情况下刷新。加载页面需要2秒钟,因此在重新加载时,使用自定义脚本是没有用的,我可以单击下拉列表并选择正确的选项来执行相同的操作!在加载页面之前,无法初始化javascript。Javascript是一种仅限于客户端的语言
var elm;
var evt;

elm = document.getElementsByName('noticeComp:mainForm:j_idt256')[0];
evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);

    while(!document.getElementsByName('noticeComp:mainForm:j_idt256')[0].options[0].selected){
        document.getElementsByName('noticeComp:mainForm:j_idt256')[0].options[0].selected="selected";
        elm.dispatchEvent(evt);
    }
var elm = document.getElementsByName('noticeComp:mainForm:j_idt256')[0];
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);

for (var i = 0; i < elm.options.length; i++) {
    var option = elm.options[i];

  if (option.value === '0') {
    option.setAttribute('selected', 'selected');
  } else {
    option.removeAttribute('selected');
    }
}

elm.dispatchEvent(evt);

function submit() {
    // code
  console.log('gogo');
}