HTML/JS Formundan bağlantı [çoğalt]

0

Soru

Şu anda bir HTML formuna bir bağlantı girdiğiniz bir program yapmaya çalışıyorum ve bir düğmeyi tıkladığınızda sizi bu bağlantıya gönderiyor. Ancak, düğmeyi tıkladığımda sayfa formu temizler. Ben bir Python yerlisiyim ve HTML/js'ye yeniyim, bu yüzden kodumu yapılandırma şeklim neden olabilir:

<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

En iyi cevabı

1

O zamandan beri bir form kullanıyorsunuz. Düğmen

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

form gönder düğmesi olarak hareket eder ve bu nedenle çalıştırmadan önce sayfayı yeniler location.assign() yöntem. Bunu düzeltmek için birçok yol vardır.

  1. Basit bir yol, tarayıcıya yalnızca bu düğmenin gönder düğmesi olmadığını söylemektir, bunu kullanarak yapabiliriz type="button" düğmemizdeki öznitelik.

    Kapı oluştur

  2. Kullanabilirsiniz e.preventDefault() formunuzda, sayfayı yenilemeyi durdurmak için gönderin.

Aşağıdaki kodu deneyin:

<!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

Kodunuz, tam olarak sağlandığı gibi, minimum HTML5 şablon şablonuna yapıştırıldığında, Textastic kod düzenleyicisinde ve localhost'ta çalışan Safari'de çalışır.

Belki de olay dinleyicinizin yakınında bulunan başka bir JavaScript, ok işlevini bozuyor olabilir. Belki bir işlev deyimini parantez içine almak yardımcı olabilir mi?

2021-11-24 05:48:39

Diğer dillerde

Bu sayfa diğer dillerde

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