セレクトボックスで年月日を指定するコードを書いているのですが、
付属画像の上の方に何も選択していない場合は、/ /スラッシュしか
表示されないのですが、付属画像の下のように、何もまだ選択していない時
でも、 年 /月 /日 と表示されるようにしたいです。
どうコードを書いたらよいでしょうか?
回答よろしくお願いいたします。
wandboxというサイトの共有コード
コードは以下のURLの白いシートの部分です。
https://wandbox.org/permlink/KwDZjqkEGdM827dR
No.1ベストアンサー
- 回答日時:
こんばんは
>/ /スラッシュしか表示されないのですが
input[type="date"]のUIは、基本的にブラウザ依存です。
CSSで年月日の表示を消しているので、placeholderでも表示が消えているものと考えられます。
(残りの「/ /」だけ表示されている)
-webkitプレフィックス付きですが、その環境のみで動作すれば良いという考えでいいのでしょうか?
例えば、firefoxで表示すれば、CSSは無視されます。
対応としては、表示を消さずに、普通にplaceholderを利用して表示すれば良いものと思われます。
背景色を設定しているようですので、値がない時だけ表示色にして、値がある時は背景色にするようにしておけば、実質的にはplaceholderだけが表示されるようになるでしょう。
表示の切り替えが面倒なら、datasetの方に「年/月/日」のような文字列を設定することでも、同様の見た目が得られると思います。
ブラウザ決め打ちで良いのなら、上記で対応可能ではないかと思います。
とは言え、「input::before」で表示値を表示しようとしているようですが、input要素は本来は子要素を持たないので、before、afterは効かないのが正しい挙動と思われます。
(こちらもfirefoxで表示してみれば、無視されます。)
同様の仕組みで行うにしても、親要素のbeforeなどを利用する方が確実であるように思われます。
一方で、jQueryを利用しているようですので、いっそのことjQueryのdatepickerを利用する方法もありそうな気がします。
https://jqueryui.com/datepicker/
こちらの場合は、input[type="text"]を使用しているので、好みのplaceholderを設定することが可能になります。
※ なお、ご質問には直接関係はないことですけれど…
ざっと見ただけですが、正しいHTMLとCSSを記すようになさった方がよさそうに感じます。
HTMLではいきなりtd要素の記述が出てきていたり、CSSでは同じ要素に対して異なる指定がされていますが、意図がわかりかねます。
どちらが採用されて、どちらが無視されるかを理解なさっていますか?
ご提示の内容で良いのなら(=ブラウザ限定)、以下の感じではいかがでしょうか?
※ 不要部分は省いてあります。
※ CDNアドレスは、この掲示板ではリンクに変換されてしまうため、正しく設定し直してください。
(Chromeにて確認)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta content="text/html; charset=utf-8" />
<title>Sample</title>
<style>
#date1 {
position: relative;
border: 3px solid #63e02d;
padding: 0.5em;
width: 11.5em;
font-size: 1.2em;
color: snow;
background-color: snow;
}
#date1::before {
position: absolute;
left: .2em;
color: black;
background-color: snow;
content: attr(data-date);
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js …
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js …
<script>
$(() => {
moment.locale('ja', {
weekdays: '日月火水木金土'.split('').map(s => s + '曜日')
});
$('#date1').on('change', function() {
const v = moment(this.value), f = 'YYYY/MM/DD (dddd)';
this.dataset.date = v.isValid()? v.format(f):'年/月/日';
this.blur();
}).trigger('change');
});
</script>
</head>
<body>
<form action="#" method="post">
<div>
<span><strong>第1希望:※</strong></span>
<input type="date" id="date1" name="time4" value="" />
</div>
<input type="submit" name="submit" value="確認画面へ" />
</form>
</body>
</html>
No.2
- 回答日時:
input.example:before { に
white-space: pre;
を追加し、
this.setAttribute('data-date', '');
を
this.setAttribute('data-date', ' 年 /月 /日');
にしたらいかがですか。
ただ、あれこれ求めるのであれば、既に回答がありますが、ブラウザ依存の標準コントロールをハックするようなやり方をせずに、サードパーティ製の精度のいいものを選択して利用した方がいいかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- その他(趣味・アウトドア・車) DVDの再生話が選択できません!! 2 2022/09/08 00:50
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
JANコードとPOSコードは同じ?
-
1日に1人がこなせるプログラム...
-
access2021 VBA メソッドまたは...
-
Visual BASIC イベント作成しよ...
-
VB2010にて、住基カードを使い...
-
ACCESSユニオンクエリでORDER B...
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
access2003 クエリSQL文に...
-
QRコードの印刷
-
オートフィルタで抽出結果に 罫...
-
VLookup関数を使ってラベルに表...
-
【VB6】実行ファイルとした後、...
-
Excel VBA 空白をセルを探して...
-
Accessの文字列部分一致を合計...
-
UWSCでMOUSEORG関数が上手く処...
-
CheckBoxのコントロール配列に...
-
スキャンコード取得は MapVirtu...
-
Excelシート上で右クリックがで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
JANコードとPOSコードは同じ?
-
1日に1人がこなせるプログラム...
-
sinカーブの表示のさせ方
-
access2003 クエリSQL文に...
-
access2021 VBA メソッドまたは...
-
変数名「cur」について
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
Exel VBA 別ブックから該当デ...
-
Excel VBA素人です。VBAで図形...
-
ACCESSユニオンクエリでORDER B...
-
VBAでファイルオープン後にコー...
-
Nullの使い方が不正です。
-
COBOLの文法
-
PreviewKeyDownイベントが2回...
-
SQL
-
VB6のComboBox関連の書き方をVB...
-
【VB6】実行ファイルとした後、...
-
エクセルに見えない文字(JISX0...
おすすめ情報