2011-11-02 10 views
27

Czytałem gdzieś, że używanie znacznika zakotwiczenia do przesłania formularza nie jest bardzo bezpieczne, więc to jest moje pytanie: czy to bezpieczne, użyć znacznika zakotwiczenia zamiast <button> lub <input type="submit" />, aby przesłać formularz? A jeśli tak nie jest, dlaczego? Problem polega na tym, że mam klasę CSS dla przycisku, który pokazuje, co chcę na <a class="button">, ale jeśli dodaję ją do rzeczywistego przycisku, dodaje dziwną granicę, której nie chcę.Czy bezpiecznie użyć kotwicy do przesłania formularza?

Dzięki

+0

Należy starać się projektować swoją '' do swoich potrzeb. Opublikuj CSS swojej aktualnej wersji, abyśmy mogli znaleźć sposób na usunięcie dziwnej granicy :) – dwalldorf

+0

Dzięki, już naprawiłem granicę. Zdefiniowałem tylko górną i dolną granicę, więc po bokach była domyślna granica. – ItsGreg

Odpowiedz

49

Aby użyć kotwicy złożyć formularz wymaga włączonej obsługi języka JavaScript zahaczyć wydarzenia. Nie jest to bezpieczne, ponieważ jeśli użytkownik ma wyłączoną obsługę JavaScript, nie będzie można przesłać formularza. Na przykład:

<form id="form1" action="" method="post"> 
    <a href="#" onclick="document.getElementById('form1').submit();">Submit!</a> 
</form> 

Jeśli chcesz możesz użyć <button>:

<button type="submit">Submit!</button> 

Albo trzymać się tego, co wszyscy wiemy:

<input type="submit" value="Submit!" /> 

można projektować wszystkie trzy z nich , ale te dwa ostatnie nie wymagają JavaScript. Prawdopodobnie wystarczy zmienić gdzieś CSS, jeśli masz problemy z granicami.

+0

Rzeczywiście. Ale na szczęście możesz ustawić przycisk tak, jakby był "a". Po prostu usuń obramowanie z aktualnie używanego stylu. Nawiasem mówiąc, użycie '

+1

Chociaż liczba użytkowników, którzy mają wyłączoną obsługę JavaScript, jest w rzeczywistości niewielka w większości ustawień. – nfechner

+2

@nfechner Pewnie, ale po co podejmować ryzyko i wysiłek, jeśli istnieje doskonały element, który ma tę funkcjonalność wbudowaną od około 1872. – GolezTrol

1
<!-- add the anchor token at the end of your action statement --> 

<form method='post' action='this_page.php?put_peram=token#anchor_name'> 
<input type='submit' value='click here'> 

<!-- put the anchor right above where you want the page to index --> 

<a name="anchor_name></a> 
+0

świetnie, dzięki .. – Developer

1

Staraj się unikać javascript dla akcji. Użyj zawsze przycisku przesyłania. Niektórzy użytkownicy mogą być wyłączeni javascript dla celów bezpieczeństwa.

Mimo że chcesz użyć javascript do przesłania wartości, dodaj poniższą linię przed wpisaniem znacznika <html>.

<!-- saved from url=(0014)about:internet--> <html>