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

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

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

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

673閲覧

年月日と曜日をセレクトボックスで選択するコードを書いているのですが、提示のコードはクローム限定でしょうか?

ghtew2

総合スコア245

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

2クリップ

投稿2021/12/14 08:06

編集2021/12/14 12:06

年月日と曜日をセレクトボックスで選択するコードを書いているのですが、提示のコードはクロームでしかcss表示されないでしょうか?
例えばfirefoxなどの他のブラウザではcssが効かないようなことが書かれていたのですが、どうでしょうか?

firefoxがダウンロードできないので確かめようがありません。どうでしょうか?
Ulはブラウザ依存、疑似要素はinputには効かないようなことが、掛かれていたような気がします。

javascript

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta content="text/html; charset=utf-8" /> 5<title>Sample</title> 6 7<style> 8#date1 { 9position: relative; 10border: 3px solid #63e02d; 11padding: 0.5em; 12width: 11.5em; 13font-size: 1.2em; 14color: snow; 15background-color: snow; 16} 17#date1::before { 18position: absolute; 19left: .2em; 20color: black; 21background-color: snow; 22content: attr(data-date); 23} 24</style> 25 26<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js"></script> 27<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script> 28 29<script> 30$(() => { 31moment.locale('ja', { 32weekdays: '日月火水木金土'.split('').map(s => s + '曜日') 33}); 34$('#date1').on('change', function() { 35const v = moment(this.value), f = 'YYYY/MM/DD (dddd)'; 36this.dataset.date = v.isValid()? v.format(f):'年/月/日'; 37this.blur(); 38}).trigger('change'); 39}); 40</script> 41</head> 42<body> 43 44<form action="#" method="post"> 45<div> 46<span><strong>1希望:※</strong></span> 47<input type="date" id="date1" name="time4" value="" /> 48</div> 49<input type="submit" name="submit" value="確認画面へ" /> 50</form> 51</body> 52</html>

概要
セレクトボックスで年月日を選択するコードを書いているのですが、提示のコードでは、付属画像のようにきちんと表示
され完璧です。

何も選択してない時にはセレクトボックス内には、年/月/日ときちんと表示されていて、さらに、セレクトボックスをクリックすると
曜日まで表示されて満足です。付属画像参考。

しかし、提示のコードではfirefoxなどのブラウザでも表示されるようにしたいのですが、●●何も選択してない時にはセレクトボックス内には、年/月/日ときちんと表示されていて、さらに、セレクトボックスをクリックすると
曜日まで表示される今の状況を維持したままどうコードを書いたら
よいでしょうか?

調べたところjQuery UI の Datepickerなどがあるようですが、調べてコードを書いても意味が分からず何も動きませんでした。

●●何も選択してない時にはセレクトボックス内には、年/月/日ときちんと表示されていて、さらに、セレクトボックスをクリックすると
曜日まで表示される今の状況を維持したままfirefoxなどの他のブラウザでも表示されるようにしたいのですが、どうコードを書いたら
よいでしょうか?

html

1<!DOCTYPE html> 2 3<html> 4 5<head> 6 <meta content="text/html; charset=utf-8" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <title>お問い合わせ</title> 9 <link rel="stylesheet" href="highcoin.css"> 10 <link rel="stylesheet" href="responsivecoin.css"> 11 <link rel="stylesheet" href="reset.css"> 12 13 <style> 14 15 /* 入力フォームの位置 */ 16 17 .auto-style1 { 18 19 text-align: center; 20 21 } 22 23 /* セレクトボックスの位置 */ 24 .auto-style2 { 25 26 text-align: center; 27 /* セレクトボックス中央に配置 */ 28 29 } 30 31 /* 第OO希望の文字自体のデザイン */ 32 .auto-style3 { 33 color: #63E02D; 34 font-size: 22px; 35 /* 文字を大きく */ 36 37 38 } 39/* 日付選択のボックスのデザイン1 */ 40#input_date1 { 41 vertical-align: middle; 42 box-sizing: border-box; 43border: 3px solid #63e02d; /* 枠線 */ 44 padding: 0.5em; /* 内側の余白量 */ 45 background-color: snow; /* 背景色 */ 46 width: 15.9em; /* 横幅 */ 47 height: 41px; /* 高さ */ 48 font-size: 1.2em; /* テキスト内の表示文字サイズ */ 49 color: #000000;/* 色 */ 50 line-height: 1.2; /* 行の高さ */ 51 52} 53input.example { 54 position: relative; 55 width: 170px; 56 height: 20px; 57 color: white; 58} 59 60input.example:before { 61 position: absolute; 62 left: 8em; 63 color: black; 64 content: attr(data-date); 65 66} 67 68input.example::-webkit-datetime-edit-year-field, 69input.example::-webkit-datetime-edit-month-field, 70input.example::-webkit-datetime-edit-day-field { 71 72} 73 74 </style> 75 76<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js"></script> 77<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script> 78<script> 79 $(function() 80 { 81 moment.locale('ja', { 82 weekdays: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'], 83 weekdaysShort: ['日', '月', '火', '水', '木', '金', '土'] 84 }); 85 86 $('input').on('change', function() { 87 if (moment(this.value).isValid()) 88 { 89 this.setAttribute( 90 'data-date', 91 moment(this.value).format(this.getAttribute('data-date-format')) 92 ); 93 } 94 else 95 { 96 this.setAttribute('data-date', ); 97 } 98 }).trigger('change'); 99 }); 100 101 function getValue() 102 { 103 alert($(".example").val()); // 2021-12-10 104 } 105</script> 106 107 108</head> 109 110<body> 111 <form action="form1.php" method="post"> 112 113 <div class="auto-style2"> 114 <span class="auto-style3"><strong>第1希望:※</strong></span> 115 116 117 <input type="date" id="input_date1" class="example" data-date-format=" (dddd)" name="time4" 118 value="<?php if(isset($time4)){ echo $time4; } ?>" /> 119 120 </div> 121 122 <input type="submit" name="submit" value="確認画面へ"> 123 124 125 </form> 126</body> 127 128</html>

付属画像
イメージ説明

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

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

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

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

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

m.ts10806

2021/12/14 08:50

firefoxダウンロードできないという状況が不明。chromeがなぜできるのか。
m.ts10806

2021/12/14 10:57

いずれにしても「どうなったら正解(想定)なのか」記載しないと応えようがないのでは。
ghtew2

2021/12/14 11:50

回答ありがとうございます。返信遅くなりました。今、概要も含めて記載いたします。
ghtew2

2021/12/14 12:12

概要が本当の質問なのですが、概要の下に書いたのが、ソースコードです。画像のように表示されちゃんと表示はOKです。ただ、他のブラウザ、firefoxやsafariなどでは、たぶん表示されないと思うのですが、inputを疑似要素にしていますし。今の表示のままで、firefoxやsafariなどでも同じ感じで表示させたいのですが、他にコードが思い浮かばないです。
m.ts10806

2021/12/14 19:40

全員に対して同じ返信されていますが、コメントに答えられてない気がします。 >firefoxダウンロードできないという状況が不明。chromeがなぜできるのか。
ghtew2

2021/12/14 20:17

すみません。警告様なメッセージが出るので、firefoxのダウロードを見送ってます、ただスマホでは、firefoxダウロードしました。
m.ts10806

2021/12/14 20:29

書いてないと分からないですし、その「警告」とは何でしょう。 本当に「警告」なら「本当にいい?」確認だけだと思うのですが。
ghtew2

2021/12/14 20:34

すみません。後で確認してみます。 その時返信致します。
ghtew2

2021/12/15 04:02

ダウウンロードできました。
ghtew2

2021/12/15 09:09

結果を投稿しました。
guest

回答3

0

何が期待される動作なのか不明ですが、Chrome と Safari と Firefox ですべて動作が異なるようです。Firefox では <input type=date>::before は効きません。Chrome と Safari での動作も妙です。


<input type=date> は、以下のような分類でそれぞれ違うUIを持っています。

  • Android の Google Chrome
  • Android 以外の Google Chrome
  • iOS の全ブラウザ
  • macOS の Safari
  • Firefox

すべてを同じ動作にするのは現実的ではありません。UIをいじるとしたら特定のブラウザだけを対象にしておかないと想定していないブラウザででおかしな表示になることがあります。

投稿2021/12/14 09:58

編集2021/12/15 00:30
int32_t

総合スコア20914

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

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

ghtew2

2021/12/14 11:50

回答ありがとうございます。返信遅くなりました。今、概要も含めて記載いたします。
ghtew2

2021/12/14 12:13

概要が本当の質問なのですが、概要の下に書いたのが、ソースコードです。画像のように表示されちゃんと表示はOKです。ただ、他のブラウザ、firefoxやsafariなどでは、たぶん表示されないと思うのですが、inputを疑似要素にしていますし。今の表示のままで、firefoxやsafariなどでも同じ感じで表示させたいのですが、他にコードが思い浮かばないです。
int32_t

2021/12/15 00:25

<input type=data>はAndroidのChromeとデスクトップのChromeでも違いますし、iOSのSafariとmacOSのSafariでも違います。すべてのブラウザで同じ動作にするのは現実的ではないでしょう。
ghtew2

2021/12/15 04:03

そんなんですね。placeholderで表示することにしました。結果は後で返信します。
guest

0

Firefoxで確認しましたが、問題なさそうに見えます。

イメージ説明

投稿2021/12/14 09:45

Lhankor_Mhy

総合スコア36134

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

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

ghtew2

2021/12/14 11:51

回答ありがとうございます。返信遅くなりました。今、概要も含めて記載いたします。ちょっと想定している表示と違いました。
ghtew2

2021/12/14 12:13

概要が本当の質問なのですが、概要の下に書いたのが、ソースコードです。画像のように表示されちゃんと表示はOKです。ただ、他のブラウザ、firefoxやsafariなどでは、たぶん表示されないと思うのですが、inputを疑似要素にしていますし。今の表示のままで、firefoxやsafariなどでも同じ感じで表示させたいのですが、他にコードが思い浮かばないです。
ghtew2

2021/12/15 09:11

ありがとうございます。firefoxでも、理想の漢字に表示できました。結果を書きました。
ghtew2

2021/12/15 09:12

理想の感じでした。漢字✖。すみません。
guest

0

自己解決

すみません。返信遅くなりました。解決できたので、ご報告いたします。
datepickerを使うことにしました。
dateからinput type="text"に変更。
入力フォーム内の表示なのですが、placeholderを使って表示することにしました。

複数のブラウザでPCとスマホ両方見てみましたが、ちゃんと表示されていたので、大部分の画面では、
表示は違うにしろ、大体自分が思う理想的な感じになっていてので、これで、解決としたいと思います。

回答やコメント下さった方々ありがとうございます。

ソースコード以下。

html

1<!DOCTYPE html> 2 3<html> 4 5<head> 6 <meta content="text/html; charset=utf-8" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <title>お問い合わせ</title> 9 10 11 <style> 12 13 /* 入力フォームの位置 */ 14 15 .auto-style1 { 16 17 text-align: center; 18 19 } 20 21 /* セレクトボックスの位置 */ 22 .auto-style2 { 23 24 text-align: center; 25 /* セレクトボックス中央に配置 */ 26 27 } 28 29 /* 第OO希望の文字自体のデザイン */ 30 .auto-style3 { 31 color: #63E02D; 32 font-size: 22px; 33 /* 文字を大きく */ 34 35 36 } 37/* 日付選択のボックスのデザイン1 */ 38#talk1{ 39 vertical-align: middle; 40 box-sizing: border-box; 41 border: 3px solid #63e02d; /* 枠線 */ 42 padding: 0.5em; /* 内側の余白量 */ 43 background-color: snow; /* 背景色 */ 44 width: 15.9em; /* 横幅 */ 45 height: 41px; /* 高さ */ 46 font-size: 1.2em; /* テキスト内の表示文字サイズ */ 47 color: #000000;/* 色 */ 48 line-height: 1.2; /* 行の高さ */ 49 50} 51 52 53 54</style> 55 56 <script src="https://code.jquery.com/jquery-3.6.0.js"></script> 57 <script src="https://code.jquery.com/ui/1.13.0/jquery-ui.js"></script> 58 59 60 61 62<script> 63$(function() { 64 $("#talk1").datepicker( { 65 changeYear: true, // 年選択をプルダウン化 66 changeMonth: true // 月選択をプルダウン化 67 } ); 68 69 70 71 // 日本語化 72 $.datepicker.regional['ja'] = { 73 closeText: '閉じる', 74 prevText: '<前', 75 nextText: '次>', 76 currentText: '今日', 77 monthNames: ['1月','2月','3月','4月','5月','6月', 78 '7月','8月','9月','10月','11月','12月'], 79 monthNamesShort: ['1月','2月','3月','4月','5月','6月', 80 '7月','8月','9月','10月','11月','12月'], 81 dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], 82 dayNamesShort: ['日','月','火','水','木','金','土'], 83 dayNamesMin: ['日','月','火','水','木','金','土'], 84 weekHeader: '週', 85 dateFormat: 'yy/mm/dd(DD)', 86 firstDay: 0, 87 isRTL: false, 88 showMonthAfterYear: true, 89 yearSuffix: '年'}; 90 $.datepicker.setDefaults($.datepicker.regional['ja']); 91}); 92 93 94</script> 95</head> 96<body> 97 98 <input type="text" id="talk1" class="example" placeholder="年_月_日_" name="time4" 99 value="<?php if(isset($time4)){ echo $time4; } ?>" /> 100 101 102 103 104</body> 105</html>

投稿2021/12/15 09:09

ghtew2

総合スコア245

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問