请教大拿一个 JS 问题,为什么不能直接用.submit()方法?

2020-04-13 09:06:31 +08:00
 zhve2x4
function submitForm(){
    let form = document.getElementById("autoForm");
    form.submit();
}

window.onload = function () {
    let selE = document.createElement("select");
    selE.name = "selectedCmd";

    let lis = ["aaa","bbb"];
    for (let i=0;i<lis.length;i++) {
        let op = new Option(lis[i],lis[i]);
        selE.options.add(op);
    }

    let formE = document.createElement("form");
    formE.id = "autoForm";
    formE.action = "/ax";
    formE.method = "GET";

    formE.appendChild(selE);
 // selE.onchange = formE.submit;  //*** 不行,执行报错
    selE.onchange = submitForm;    //这样才行

    let divF = document.getElementById("divF");
    divF.appendChild(formE);
}
1174 次点击
所在节点    问与答
4 条回复
9yu
2020-04-13 09:08:03 +08:00
```js
selE.onchange = () => { form = document.getElementById("autoForm").submit() }
```
otakustay
2020-04-13 09:08:17 +08:00
因为 submit 需要 this
ismumu
2020-04-13 09:44:10 +08:00
selE.onchange = () => {
formE.submit();
}
zhve2x4
2020-04-13 16:03:01 +08:00
@ismumu 这个测试了,确实可以用,也很简洁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661811

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX