元々JavaScriptでコーディングしたコードを下記jQueryコードにコーディングし直して処理しようとしたら全く処理できなくなってしまいました
原因究明をしてみたんですが、処理の解読がしきれなくて作業も止まってしまいました
⓵はready追加で一度に複数の処理を読み込めるようにし、formデータをsubmitする時にr1~3がcheckedされた場合、各条件を満たさなかったらアラート表示(となるはず)
⓶bbsをclickした時に変数myidでradioのidを取得、変数sendlistでr1~3をcheckした時の判別処理、if文でbbsがcheckedされたらtrueとなってsendlist[myid].textを含めたvalue値をsendに代入、chkid[]はsendlist[myid]のcheckflgがtrueか否かでdisabled
という風に解釈してるんですが、まだ何か定義されていない関数等があるんでしょうか
このような文章になってしまって申し訳ないですが、何が原因か教えていただけますか
<script type="text/javascript" src="jquery-1.12.4.js"></script> <script type="text/javascript"> $(document).ready(function() {//⓵.readyを追加してコード全体で一度に複数処理できるように修正 $('form').on('submit',function() {//submitボタンを押すとフォームの条件が満たされない場合各アラート表示 if ($('#r1').prop('checked')) { with($('#name')) { if (val().length >= 10) { window.alert("ERROR1"); return false; } if (val() === "") { window.alert("ERROR2"); return false; } } with($('#comment')) { if (val().length >= 300) { window.alert("ERROR3"); return false; } if (val() === "") { window.alert("ERROR4"); return false; } } } if ($('#r2').prop('checked') || $('#r3').prop('checked')) { if ($('input[name = "chkid[]"]:checked').length == 0) { window.alert("ERROR5"); return false; } } return true; }); $('input[name = bbs]').on('click',function() {//⓶各bbsを押すと投稿・更新・削除にsubmitボタンの切り替わるのとfalseでチェックボックス(chkid[])非表示 var myid = $(this).prop('id'); var sendlist = { "r1":{"text":"投稿",checkflg:true}, "r2":{"text":"更新",checkflg:false}, "r3":{"text":"削除",checkflg:false}, }; if($(this).prop('checked')==true){ $('#send').val(sendlist[myid].text); $('[name = "chkid[]"]').prop('disabled',sendlist[myid].checkflg); } }).click(); }); </script> </head> <body> <form method="post" action=""> <table> <tr> <td> 名前:<input type="text" name="name" id="name"> 内容:<textarea name="comment" cols="30" rows="3" id="comment"></textarea> <input type="radio" name="bbs" id="r1" value="post">投稿 <input type="radio" name="bbs" id="r2" value="update">更新 <input type="radio" name="bbs" id="r3" value="delete">削除 <input type="submit" id="send"> </td> </tr> </table>
あなたの回答
tips
プレビュー