2011-07-14 18 views
5

なぜ入力タイプのhrefがIEで機能しないのですか? (と私はそれを修正するために行うことができます)hrefの入力タイプsubmit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen"> 
</head> 
<body> 
<a href="1.html"><input type="submit" class="button_active" value="1"></a> 
<a href="2.html"><input type="submit" class="button" value="2"></a> 
<a href="3.html"><input type="submit" class="button" value="3"></a> 
</body> 
</html> 

のstyle.css:

* { 
    margin: 0; 
    padding: 0; 
} 

/* CSS Buttons: http://www.web4site.de/css/css-buttons.php */ 
.button { 
    padding:0; 
    margin:0; 
    border:none; 
    font-size:14px; 
    background: url(../img/button.gif) no-repeat center; 
    color: #000000; 
    height:27px; 
    width:134px; 
    font-variant:small-caps; 
} 

.button:hover { 
    padding:0; 
    margin:0; 
    border:none; 
    font-size:14px; 
    background: url(../img/button.gif) no-repeat center; 
    color: #FF0000; 
    height:27px; 
    width:134px; 
    text-decoration:none; 
    font-variant:small-caps; 
} 

.button_active { 
    padding:0; 
    margin:0; 
    border:none; 
    font-size:14px; 
    background: url(../img/button.gif) no-repeat center; 
    color: #FF0000; 
    height:27px; 
    width:134px; 
    font-variant:small-caps; 
} 

これはFirefoxで正常に動作します...

+0

あなたはhtmlに制限があることを受け入れる必要があります – Sotiris

答えて

10

それがないので、それは動作しません。 (HTML5が明示的にそれを禁じているという意味はほとんどない)。

これを修正するには、リンクまたは送信ボタンを使用し、実際に必要なものを使用するかどうかを決定します(ヒント:フォームがないため、送信ボタンはナンセンスです)。

+0

私はリンクが必要で、それをフォーマットするための入力タイプ(バックグラウンドイメージなど)を使用するので、私にとって理にかなっています。 – Marc

+0

リンクをクリックすると、リンクをたどります。送信ボタンをクリックすると、フォームが送信されます。リンク内の送信ボタンをクリックすると、同時にリンクをたどってフォームを送信しますか?どちらもブラウザを新しいURIに送りますか?それはまったく意味がありません。 – Quentin

+2

それはあなたの問題です。送信ボタンはフォームを送信するためのものですが、ボタンのように見えるようにするためのものではありません。ボタンのように見えるようにするには、CSS **を使用します。 – Quentin

0

action=""のラッピングformタグにリンク先を置きます。

あなたの最初のリンクは次のようになります。

<form action="1.html"> 
    <input type="submit" class="button_active" value="1"> 
</form> 
+0

リンクは入力タイプごとに同じではありません。 - – Marc

+0

入力のためにデータを提出したいと思っているので、3つの異なるフォームが必要になります。 – Phil

11

あなたがアンカー内の送信ボタンを置きたいと思うのはなぜ?フォームを送信するか、別のページに移動しようとしています。どちらですか?

フォーム提出のどちらか:私はクエンティンに同意

<input type="button" class="button_active" onclick="location.href='1.html';" /> 
+0

これは問題なく動作しています。ありがとうalot :) – Marc

+0

問題はありません。この回答を受け入れることをどうぞお気軽に。 ;) – Kon

0

<input type="submit" class="button_active" value="1" /> 

それとも別のページに移動します。あなたがそれを好きにしたい理由については意味がありません。それはSemantic Webコンセプトの一部です。あなたは将来の統合/拡張のためにあなたのWebサイトのオブジェクトを計画しなければなりません。適切なユースケースに従わないと、別のWebアプリケーションやWebサイトでコンテンツとやりとりすることはできません。

IEとFirefoxは2つの異なる獣です。 Firefoxと他の標準を意識したブラウザがIEに許していることはたくさんあります。

実際にデータを送信せずにボタンを作成する場合は、DIV/CSSの組み合わせを使用します。

0
<a href="1.html"><input type="text" class="button_active" value="1"></a> 
<a href="2.html"><input type="text" class="button" value="2"></a> 
<a href="3.html"><input type="text" class="button" value="3"></a> 

これを試してください。あなたが真に提出物としてタイプにこだわる必要がない限り、私が提供したものはうまくいくはずです。あなたが提出することに固執するつもりなら、上記のすべてが正しいです、それは理にかなっていません。

関連する問題