質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

12399閲覧

Safariでのみ<input type="submit">が出来ない。

hibikikudo

総合スコア238

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

0クリップ

投稿2015/12/07 03:35

初めてこちらで質問させていただきます。
下記のエントリーフォームのコードでSafariでだけ、<input type="submit">が効かず困っております。(Chrome, FireFox, IE, Operaでは動く)

解決方法をご存じの方がいらっしゃいましたらぜひお力添えいただきたく思います。
ちなみにSafariのバージョンは5.1.7。(試したところ6系でも動かず)
よろしくお願いいたします。

lang

1<form name="signup" class="form" novalidate method="post" onsubmit="return false;" > 2<div data-states-for="email"> 3 <label for="email">メール</label> 4 <input type="email" 5 id="email" 6 name="email" 7 value="" 8 required 9 formnovalidate> 10 <div data-errors-for="email"> <small class="form-error is-hidden" 11 data-errors-when="valueMissing"> メールアドレスを入力してください。 </small> 12 <small class="form-error is-hidden" 13 data-errors-when="typeMismatch"> 14 @(アットマーク) .(カンマ)はついてますか? 15 </small> 16 </div> 17 </div> 18<input type="submit" value="登録" /> 19 20<script type="text/javascript"> 21$(function() { 22 // フォームの入力欄が更新されたかどうかを表すフラグ。 23 var isChanged = false; 24 25 $(window).bind("beforeunload", function() { 26 console.log(isChanged); 27 if (isChanged) { 28 // isChangedフラグがtrueの場合、つまり入力内容が変更されていた 29 // 場合のみ文字列を返すようにします。 30 return "入力途中の項目があります。"; 31 } 32 }); 33 34 $("form input, form select, form textarea").change(function() { 35 // 入力内容が更新されている場合は、isChangedフラグをtrueにします。 36 isChanged = true; 37 }); 38 39 $("input[type=submit]").click(function() { 40 // フォームをサブミットする前にフラグを落とします。 41 // ※ これをやらないと、サブミット時に確認メッセージが表示されてしまいます。 42 isChanged = false; 43 }); 44})</script>

上記のようにvalidationをブラウザデフォルトのものではなくJSで制御しています。

lang

1<form name="signup" class="form" id=”signUp” novalidate method="post" onsubmit="return false;" > 2<input type="submit" value="登録" onclick=”document.getElementById(’signUp’).submit()” />

などという形で書くと、今度はJS制御のValidationが着火しなくなってしまいます。
本当に困っています...助けていただけると嬉しいです。よろしくお願いいたします。

ikuwow👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

http://palmgate.co.jp/masato_kato/article.html&id=152これも。

javascript

1$('input[name=confirm]').on('click', function (e) { 2 $('#form form').append($('<input type="hidden" name="confirm" value="submit" />')).submit(); 3 return true; 4}); 5

投稿2016/03/25 02:55

hibikikudo

総合スコア238

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

SafariではHTML5のformおよびinputタグに使用する以下の属性が使えないことがわかった。

html

1required novalidate formnovalidate

現在の最新版であるSafari9.0.2でも使えなかった。
ということで、一年以上前にW3C勧告になっておりIEでも使えるHTML5タグが使えないということでびっくりしました。

投稿2015/12/11 01:56

hibikikudo

総合スコア238

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

onsubmit="return false;"のせいではないですか?

投稿2015/12/07 03:42

orange0190

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

orange0190

2015/12/07 03:44

そのほか、formの閉じタグがありませんが、記述忘れですか?
hibikikudo

2015/12/07 06:25 編集

ShunsukeIzuiさん>失礼しました。それは書き忘れで、実際には書いてあります。 上記にも追記しました。(2015/13/07/15/25)
hibikikudo

2015/12/07 04:27

ShunsukeIzuiさん><input>内 onsubmit="return false;"取り除いても状況変わらずです。
orange0190

2015/12/07 05:44

formのaction属性はどうなっていますか?
hibikikudo

2015/12/07 06:10

ShunsukeIzuiさん> formのaction属性は現在は記述しておりません。 formのaction属性はを下記のように書き直しますと、今度はJSバリデーションが全く効かず、required属性をつけた必須項目が入力されていなくても関係なく画面遷移してしまいます(Safariのみ)。 <form name="signup" class="form" novalidate method="post" action="confirm.html">
orange0190

2015/12/07 06:35

利用しているJSプラグイン等があれば、載せてください
hibikikudo

2015/12/07 06:39

ShunsukeIzuiさん>こんな感じです。 <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script> <script type="text/javascript" src="js/gentle_form.js">//フォームに関するjs</script> <script type="text/javascript" src="js/jquery.autoKana.js">//フリガナ入力支援</script> <script type="text/javascript" src="js/valueconvertor.js">//ひらがな→カタカナ自動変換</script> <script type="text/javascript" src="js/bootstrap-datepicker.js">//日時取得</script> <script type="text/javascript" src="js/jquery.leanModal.min.js">//モーダルウィンドウ</script>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問