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

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

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

Salesforceは、クラウド型の顧客関係管理(CRM)、営業支援(SFA)などのサービスを提供している企業。米カリフォルニア州に本社があり、日本法人は株式会社セールスフォース・ドットコムです。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

321閲覧

フォームで日付欄を未選択でもエラーを出さないようにしたい

mandelin

総合スコア0

Salesforce

Salesforceは、クラウド型の顧客関係管理(CRM)、営業支援(SFA)などのサービスを提供している企業。米カリフォルニア州に本社があり、日本法人は株式会社セールスフォース・ドットコムです。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2022/07/07 02:09

フォーム内容をSalesforceに連携した際に、
日付にNullのレコードが含まれているとエラー通知が届きます。

ただ必須項目ではなく任意項目のまま進めたいので、
項目がnullや空白だった場合、
裏で、デフォルト値を入れてエラーを回避したいです。

またツールの仕様で、formタグのsubmitイベントやinput(type=submit)のclickイベントを設定できません。

対策としてこちらのフォーマットにすることなのですが、はめてできないでしょうか。

JavaScript

1//登録フォームの確認画面(submitボタンのname値が__commit)のサンプルコード 2<script> 3 var submitFormCustomFunc = function (button_name, exec_submit){ 4 if (button_name === "__back") { 5 // 戻るボタンが押された処理を書く 6 alert("戻るボタンが押されました"); 7 exec_submit(); 8 } else if (button_name === "__commit") { 9 // 送信ボタンが押された処理を書く 10 alert("送信ボタンが押されました"); 11 exec_submit(); 12 } 13} 14</script>

ソースはこちらです。

HTML

1<form action="/tykz2/m" method="post" autocomplete="off"> 2 <table class=""> 3 <tr class=""> 4 <th id="th_33">日付</th> 5 <td id="td_33"> 6 7 <select name="e_33[year]" id="select_year"> 8 <option value="">年</option> 9 <option value="2022">2022年</option> 10 <option value="2023">2023年</option> 11 </select> 12 13 <select name="e_33[month]" id="select_month"> 14 <option value="">月</option> 15 <option value="1">01月</option> 16 <option value="2">02月</option> 17 </select> 18 19 <select name="e_33[day]" id="select_day"> 20 <option value="">日</option> 21 <option value="1">01日</option> 22 <option value="2">02日</option> 23 <option value="3">03日</option> 24 <option value="4">04日</option> 25 </select> 26 27 </td> 28 </tr> 29 </table> 30 31<div class="box" id="b9"> 32<input type="submit" name="__send" id=".__send" value="確認画面へ" /> 33</div> 34</form> 35コード

JavaScript

1 document.getElementById('.__send').addEventListener('click', function(){ 2 3 var select_year = document.getElementById('select_[year]').value; 4 var select_month = document.getElementById('select_[month]').value; 5 var select_day = document.getElementById('select_[day]').value; 6 7 if (select_year == null || select_year == '') { 8 select_year = "1"; 9 } 10 if (select_month == null || select_month == '') { 11 select_month = "1"; 12 } 13 if (select_day == null || select_day == '') { 14 select_day = "1"; 15 } 16 17}); 18コード

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

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

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

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

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

guest

回答1

0

select_[year]というidの要素はありません(month,dayも同様)
単純にセレクトボックスにデフォルト値を設定しておけばいいだけの話だ思いますが・・・

sample

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 document.querySelector('#__send').addEventListener('click', e=>{ 4 e.preventDefault(); 5 const y=select_year.value; 6 const m=select_month.value; 7 const d=select_day.value; 8 console.log([y,m,d]); 9 }); 10}); 11</script> 12<form method="post"> 13 <select name="e_33[year]" id="select_year"> 14 <option value="2022">2022</option> 15 <option value="2023">2023</option> 16 </select> 17 18 <select name="e_33[month]" id="select_month"> 19 <option value="1">01</option> 20 <option value="2">02</option> 21 </select> 22 23 <select name="e_33[day]" id="select_day"> 24 <option value="1">01</option> 25 <option value="2">02</option> 26 <option value="3">03</option> 27 <option value="4">04</option> 28 </select> 29<div> 30<input type="submit" name="__send" id="__send" value="確認画面へ" /> 31</div> 32</form>

エラーはエラーとする

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 document.querySelector('#__send').addEventListener('click', e=>{ 4 e.preventDefault(); 5 const y=select_year.value; 6 const m=select_month.value; 7 const d=select_day.value; 8 if(y==""){ 9 select_year.focus(); 10 alert('年を選んでください'); 11 return false; 12 } 13 if(m==""){ 14 select_month.focus(); 15 alert('月を選んでください'); 16 return false; 17 } 18 if(d==""){ 19 select_day.focus(); 20 alert('日を選んでください'); 21 return false; 22 } 23 console.log([y,m,d]); 24 }); 25}); 26</script> 27<form method="post"> 28 <select name="e_33[year]" id="select_year"> 29 <option value=""></option> 30 <option value="2022">2022</option> 31 <option value="2023">2023</option> 32 </select> 33 34 <select name="e_33[month]" id="select_month"> 35 <option value=""></option> 36 <option value="1">01</option> 37 <option value="2">02</option> 38 </select> 39 40 <select name="e_33[day]" id="select_day"> 41 <option value=""></option> 42 <option value="1">01</option> 43 <option value="2">02</option> 44 <option value="3">03</option> 45 <option value="4">04</option> 46 </select> 47<div> 48<input type="submit" name="__send" id="__send" value="確認画面へ" /> 49</div> 50</form>

投稿2022/07/07 02:24

編集2022/07/07 04:28
yambejp

総合スコア114843

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

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

mandelin

2022/07/07 03:27

>select_[year]というidの要素はありません select_yearにすればいいでしょうか。 >セレクトボックスにデフォルト値を設定する こちらがあまりわかっておりません。 ・select_year = “default”; にする ・optionタグにselectedやhiddenをつけておく ということでしょうか。。
yambejp

2022/07/07 03:43

value=""の値が選べないようにしてくださいということです sample確認ください
mandelin

2022/07/07 04:06

ご説明ありがとうございます。 <option value="">年</option> 部分は勝手に生産されるものだったりします。(月日部分も同様) そこを選んでいてもエラーにならない方法は、やはりないのでしょうか。
yambejp

2022/07/07 04:23

ありますが、選んでもいないものをあたかも選んだように勝手に解釈するのは Aという商品を買ったつもりがBという商品が勝手に選ばれて送られてくるような UIとしては悪手です。 エラーのときにはエラーを表示し、ユーザーに選ばせるのが肝要です
mandelin

2022/07/07 05:41

なるほどでございます。 「未選択」というのも一つの選択肢にしたかったりしました。 (<option value=“1”>未定</option>というのを追加できたら良かったのですが 日付項目だとそういったこともできず。) ユーザーには何かしら選んでもらえたと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問