V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zhve2x4
V2EX  ›  问与答

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

  •  
  •   zhve2x4 · Apr 13, 2020 · 1585 views
    This topic created in 2206 days ago, the information mentioned may be changed or developed.
    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);
    }
    
    4 replies    2020-04-13 16:03:01 +08:00
    9yu
        1
    9yu  
       Apr 13, 2020   ❤️ 1
    ```js
    selE.onchange = () => { form = document.getElementById("autoForm").submit() }
    ```
    otakustay
        2
    otakustay  
       Apr 13, 2020   ❤️ 2
    因为 submit 需要 this
    wb500
        3
    wb500  
       Apr 13, 2020   ❤️ 1
    selE.onchange = () => {
    formE.submit();
    }
    zhve2x4
        4
    zhve2x4  
    OP
       Apr 13, 2020
    @ismumu 这个测试了,确实可以用,也很简洁
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4615 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 10:07 · PVG 18:07 · LAX 03:07 · JFK 06:07
    ♥ Do have faith in what you're doing.