Odkaz z Formuláře HTML/JS [duplicitní]

0

Otázka

Já jsem v současné době snaží vytvořit program, ve kterém zadáte odkaz do formuláře HTML a když kliknete na tlačítko, odešle vás na tento odkaz. Nicméně, když jsem klepněte na tlačítko stránky jen vymaže formulář. Jsem Python nativní a nováček HTML/JS tak, jak jsem strukturování můj kód může být důvod, proč:

<form>
    <input type="url" id="link" placeholder="Enter link of website:" required>
    <br>
    <button class="outline" id="open">Create gate</button>
    </form>
    <script type="text/javascript">
        document.getElementById("open").onclick = () => 
        location.assign(String(document.getElementById("link").value));
    </script> </form>
html javascript
2021-11-24 05:36:02
2

Nejlepší odpověď

1

Protože jste pomocí formuláře. Tlačítko

<button class="outline" id="open">Create gate</button>

působí jako formuláře, tlačítko odeslat a tím se to obnoví stránku před spuštěním location.assign() metoda. Existuje mnoho způsobů, jak to napravit.

  1. Jeden jednoduchý způsob, jak je výlučně říct prohlížeči, že toto tlačítko není tlačítko odeslat, můžeme to udělat pomocí type="button" atribut naše tlačítko.

    Vytvořit bránu

  2. Můžete použít e.preventDefault() na formuláři předložit k zastavení obnovování stránky.

Zkuste následující kód:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Location Object</title>
</head>
<body>
    <form>
        <input type="url" id="link" placeholder="Enter link of website:" required>
        <br>
        <button class="outline" id="open">Create gate</button>
    </form>
    <script type="text/javascript">
        document.getElementById("open").addEventListener('click', (e) => {
             e.preventDefault();
            location.assign(String(document.getElementById("link").value));
        });
       
    </script>
    </form>
</body>
</html>

2021-11-24 05:52:15
0

Váš kód, přesně jak je uvedeno, vložit do minimální HTML5 boilerplate šablona funguje v Textastic code editor a v Safari běží na localhost.

Možná, že některé jiné JavaScript v blízkosti své posluchače událostí je porušení šipka funkce. Možná bracketing jednu funkci prohlášení by mohlo pomoci?

2021-11-24 05:48:39

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................