チェックボックスの送信についての問題と解決方法

このQ&Aのポイント
  • 昨日、Ajax通信で受け取ったデータをチェックボックスに反映する方法を教わった者です。しかし、チェックボックスの内容を送信する際に問題が発生しています。具体的には、チェックボックスの内容(チェックか否か)が拾われず、送信されないという問題です。エラーが表示されるため、解決方法を知りたいです。
  • 以下のようなコードを使用しています。
  • チェックボックスの内容が正しく拾われず、送信されないという問題が発生しています。解決方法をご教示いただけますと幸いです。
回答を見る
  • ベストアンサー

チェックボックスの中味を送信できません

昨日、Ajax通信で受け取ったデータをチェックボックスに反映する方法を教わった者です。 今度は送信で悩んでいます。 表のデータをPOSTで送るんですが、テキストのところ(「td」に書かれたものや input type="text" の部分) は問題なく渡せました。 でもまたまたチェックボックスでつまずいています。 ★☆★☆★☆★☆の部分ですが、プログラムは通るのですが、チェックボックスの内容(チェックか否か)を 拾ってくれません。 また、rows[i].getElementByTagName("sendF[]") などとやってみたんですが、エラー(not a function)が出てしまいます。 どなたかご指導下さい。 よろしくお願いします。 $.ajax({ type: "POST", url: "../SendList.php", data: {"condition":condition}, // Webサーバに送信するデータ dataType: 'text', // Webサーバか受信するデータの形式 success: function(request){ // ajax通信が成功したときの処理 var json = JSON.parse(request); var res = ''; for (var i = 0; i < json.length; i++){ res += '<tr>' + '<td style="text-align: center;">' + json[i].personId + '</td>' + '<td style="text-align: center;">' + json[i].personName + '</td>' + '<td style="text-align: center;">'; // 値を checkbox のチェックに差し込む if(json[i].sendF == 1){ res += '<input type="checkbox" id="sendF[' + i + ']" name="sendF[]" checked />'; } else { res += '<input type="checkbox" id="sendF[' + i + ']" name="sendF[]" />'; } res += '</td >' + '<td style="text-align: left;">' + '<input type="text" id="memo" name="memo" value="' + json[i].memo + '" />' + '</td >' + '</tr>'; } var obj = document.getElementById("datatable"); obj.innerHTML ='<table id="tbl_correspondUpdate" class="customerlist"><tr><th>担当者ID</th><th>担当者名</th><th>送信F</th><th>メモ</th></tr>' + res + '</table>' + '<br />' +'<p class="condition_submit">' + '<input id="btnUpdate" type="button" onclick="doActionUpdate();" value="更新" />' + '</p>'; }, error: function(msg){ // ajax通信が失敗したときの処理 alert( "Data Saved: " + msg ); } }); } // 「更新」ボタンクリック function doActionUpdate(){ var tbl = document.getElementById("tbl_correspondUpdate"); var cols = tbl.rows[0].cells.length;// 列数 //var rows = tbl.rows.length; // 行数 var rows = tbl.rows; // 行に対するループ for (var i=1; i<rows.length; i++) { var sendF; if(rows[i].cells[6].checked){ ★☆★☆★☆★☆// → 通るものの拾わない //var elm = rows[i].getElementByTagName("sendF[]"); // → not a function //if(elm.checked){ sendF = 1; }else{ sendF = 0; } // dataセット var data = "personId=" + rows[i].cells[0].innerHTML + "&sendF=" + sendF + "&memo=" + rows[i].cells[3].firstChild.value updateRecord(data); } } // 更新処理 function updateRecord(data){ // 更新Ajax処理 // 更新したIDを返す $.ajax({ type: "POST",

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.1

いろいろ間違えていますが、そもそも HTML Form の使い方を勘違いしています HTML Form には、フォーム内容を簡単に扱える仕組みがあるので、それを利用しない手はありません。 https://developer.mozilla.org/ja/docs/Web/API/HTMLFormElement.elements たとえばこの様に <form onsubmit="doActionUpdate(this);return false"> ... <input type=hidden name="personId.0" value=123>123 <input type=checkbox name="sendF.0" checked> <input type=text name="memo.0" value=ほげ> ... <input type=hidden name="personId.1" value=456>456 <input type=checkbox name="sendF.1"> <input type=text name="memo.1" value=ふが> ... <input type=submit value=更新> </form> <script> function doActionUpdate(form) { var e = form.elements; // フォーム内の入力要素を name で取得 for (var i = 0; e['personId.' + i]; i++) { var personId = e['personId.' + i].value; var sendF = e['sendF.' + i].checked; var memo = e['memo.' + i].value; updateRecord(personId, sendF, memo); } } </script>

panasobi
質問者

お礼

回答ありがとうございました。 なかなかJavascriptが理解できずに困っています。 Formで括ることはわかるんですが、この場合はテーブルに配置された データを登録するので行数は可変です。2行のときもあれば10行のときもあるわけですが、 その場合、1件についてFromでくくるんでしょうか。 submitがひとつであることを考えると、可変行を含めてすべての行を含んで Formで括ればいいわけですね。 例示して頂いた <input type=hidden name="personId.0" value=123>123 のところの「personId.0」を「personId.+ i」みたいな感じで回せばいいのかも しれませんね。 例示を参考にちょっと頑張ってみます。 「いろいろ間違えていますが」がとありますが、勉強のためでもありますので、 具体的に指摘して頂けるとうれしいです。 よろしくお願いします。

panasobi
質問者

補足

教えて頂いたことを参考に、なんとか出来上がりました。 いろいろありがとうございました。

その他の回答 (1)

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

誤: rows[i].cells[6].checked 可: rows[i].cells[2].firstChild.checked 誤: rows[i].getElementByTagName("sendF[]").checked 可: rows[i].getElementsByName("sendF[]").checked 正: document.getElementById('sendF[' + (i-1) + ']').checked 悪: id/name を無意味に指定している 良: スタイル/スクリプト/フォーム送信で使用するもの「だけ」指定する 悪: 入力要素の取得方法が、不必要に面倒 悪: 何のための id="sendF[' + i + ']" なのか... 良: getElementById / getElementsByName / form.elements で一発取得

panasobi
質問者

お礼

Ogre7077 さん、返信が遅くなって申し訳ありません。 間違いの部分をいろいろ教えて頂き、ありがとうございました。 なんかずいぶん無駄で間違ったことをやっているんだなぁ、 と思いました。 教えて頂いたコードを元に何とかできるようになった感じなんですが・・ 今度はフォームをシリアライズして一度に複数件のデータを送った時、 PHP側でどのようにばらせばいいのかでつまづいています。 引き続きご指導下さい。

関連するQ&A

  • テーブル上のチェックボックスにチェックがされない

    データベースからメール送信履歴を検索し、結果をリスト表示しようとしています。 Ajax通信をして結果をJsonで受け取っています。 送ったか否かは「sendF」に書かれており、「0」なら未送信、「1」なら送信済みです。 「sendF」が「1」ならチェックボックスにチェックを入れようと思って 以下のコードを書きました。 でも、テーブル上のチェックボックスにはチェックが入りません。 console.logで数値が「1」を確認していますが、表示がされません。 どこが悪いか教えて頂けるとうれしいです。 よろしくお願いします。 $.ajax({ type: "POST", url: "../SendList.php", data: {"condition":condition}, // Webサーバに送信するデータ dataType: 'text', // Webサーバか受信するデータの形式 success: function(request){ // ajax通信が成功したときの処理 var json = JSON.parse(request); var res = ''; for (var i = 0; i < json.length; i++){ res += '<tr>' + '<td style="text-align: center;">' + json[i].personId + '</td>' + '<td style="text-align: center;">' + json[i].personName + '</td>' + '<td style="text-align: center;">' + '<input type="checkbox" id="sendF[' + i + ']" name="sendF" />' + '</td >' + '<td style="text-align: left;>' + '<input type="text" id="memo" name="memo" value="' + json[i].memo + '" />' + '</td >' + '</tr>'; if(json[i].sendF == 1){ $('#sendF[' + i + ']').prop('checked', true); console.log("1でした"); } } var obj = document.getElementById("datatable"); obj.innerHTML ='<tr><th>担当者ID</th><th>担当者名</th><th>送信F</th><th>メモ</th></tr>' + res; }, error: function(msg){ // ajax通信が失敗したときの処理 alert( "Data Saved: " + msg ); } });

  • コールバック関数が動かない

    Ajaxでサーバ通信を試みています。 Javaは少しわかるんですが、JvascriptやjQueryはサッパリちんぷんかんぷんな状態です。 今、ボタンクリックで「doAction()」を呼んで、Javaのクラス「/greetinglist」に キーワード「id」を渡して検索結果を受け取って表示しようとしています。 function doAction() は働いて、Java側の検索もできてるんですけど、そこで終了してしまいます。 コールバック関数「function callback(resp)」が動いてくれません。 FireBugで動きを追っていますが、特にエラーはないようです。 「function doAction()」 はjQueryを使っていますが、「function callback(resp)」はJavaScript だという認識です。 <script type="text/javascript" src="js/datastore.js"></script> <script src="/js/jquery-1.7.2.min.js"></script> <script type="text/javascript"> //<![CDATA[ function doAction(){ var id = $('#month').val(); console.log("id==========" + id); $.getJSON('/greetinglist',{id:id},callback,"json"); } function callback(resp){ var json = eval(request.responseText); var res = ''; for (var i = 0;i < json.length;i++){ res += '<td>' + json[i].month + '</td>' + '<td>' + json[i].tenDays + '</td>' + '<td>' + json[i].greeting + '</td>' + '<td><a href="greetingdetail.html?id=' + json[i].id + '">詳細</td>'; } var obj = document.getElementById("datatable"); obj.innerHTML ='<tr><td>id</td><td>月</td><td>旬</td><td>文章</td><td>編集</td></tr>' + res; console.log("res==========" + res); }

  • JQueryを用いたJsonとの非同期通信について

    下のソース //画面構築完了後 $(function() { //ボタンのクリックイベントで $("#btn_1").click(function(){ //data/sample.jsonのデータを取得し、jsonというオブジェクトに入れる $.getJSON("fdas.json", function(json){ var rows = ""; //テーブルとして表示するため、htmlを構築 //for (i = 0; i < json.length; i++) { rows += "<tr>"; rows += "<td>"; for (var kaey in json) { rows += (json[kaey]); } rows += "</td>"; rows += "</tr>"; //} //テーブルに作成したhtmlを追加する $("#tbl").append(rows); }); }); }); このソースに <input id="btn_1" type="button" value="データ取得" /> を使ってボタンを押しているのですが、FirefoxだとJsonのデータを更新してから押してもデータが変更されず、ChromeだとF5とかを幼くても更新されます。 ブラウザによって挙動が違うのはソースが間違っているからですか? それともJsにもHTML5やCSS3のように、対応ブラウザなどがあるのでしょうか??? また自分はまだよくわかっていないのですが、prototype.jsを用いた場合のほうが簡単だということがありましたらそちらも教えていただけると幸いです 教えてください!!!

  • PHPへチェックボックスの値の渡し方

    御世話になります。 PHPとMySQL(サーバーサイド)とJavascript(クライアントサイド)を使って、会社で製造している各製品の構成部品と数を表すBOM(Bill Of Material)のデータベースを作っています。 Javascriptで動的に生成したチェックボックスの、チェックされた状態をPHPに渡そうとしていますが、上手く行きません。 どなたか、詳しい方のお知恵を拝借できれば有難いと思っております。 今作成中のプログラムは結構長いものなので全部をここにコピーしてくるわけには行きませんが、要点は次の様なものです。 1:クライアントサイドで製品の識別用番号と改訂版番号を入力して、AJAXを使って該当する製品の構成部品とオプション、およびそれぞれの必要数量をサーバーに要求する 2:サイバーでは要求されたデータをデータベースから抽出して、JSON型式でクライアントに送る 3:クライアントは受け取ったデータから、まず複数あるオプションをチェックボックスで選択できるように、チェックボックス、各オプションの番号、その説明文を動的に生成する 4:更にクライアントは必要なオプションを示すチェックボックスにチェックマークを入れ(複数可能)、送信ボタンを押す 5:サーバーはPOSTで受け取った、チェックマークの付いたオプションと、その他の構成部品とそれぞれの数量をテーブル形式でスクリーンに表示する 大まかには以上のような流れになりますが、4:から5:へのチェックボックスの状態がどうしてもPHPに渡せません。 以下に、この問題に関係すると思われるソースコードをコピーします。 <script> function getData(){ var target = document.getElementById("options"); target.value=""; var num = document.getElementById("PN").value; // user input value var rev = document.getElementById("mySelect").value; // selected value document.getElementById("pRev").value=rev; var xmlhttp = new XMLHttpRequest(); // send partNumber + revision as one entity xmlhttp.open("GET", "JSON-TEST4.php?object=" + num + "&revision=" + rev , true); xmlhttp.send(); xmlhttp.onreadystatechange = function(){ //AJAX starts if(this.readyState == 4 && this.status == 200){ var object = JSON.parse(this.responseText); var optCount = object.optionCount; document.getElementById("partID").value= object.id; // hidden input element document.getElementById("optCount").value= optCount;// hidden input element document.getElementById("DS").innerHTML = object.description; // create checkboxes for selecting options for(var i=0; i<optCount; i++){ var checkbox = document.createElement("input"); // make checkbox checkbox.setAttribute("type", "checkbox"); checkbox.setAttribute("name", "check" + (i+1)); checkbox.setAttribute("value", "checked"); var inputPN = document.createElement("input"); // make input for option part number inputPN.setAttribute("type", "text"); inputPN.setAttribute("name", "pn" + (i+1)); inputPN.setAttribute("value", object.optPN[i]); var inputDS= document.createElement("input");// make input for option description inputDS.setAttribute("type", "text"); inputDS.setAttribute("name", "ds" + (i+1)); inputDS.setAttribute("value", object.optDS[i]); inputDS.setAttribute("size", "80"); var br = document.createElement("br"); // paste newly created HTML tags inside <td> with id="options" //target = document.getElementById("options"); target.appendChild(checkbox); target.appendChild(inputPN); target.appendChild(inputDS); target.appendChild(br); } }// if readyState }// AJAX function }// getData() </script> HTML の該当部分は <table class="queryTable"> <tr> <th class="pNum"> Input Part Number</th> <th class="pRev"> Select Revision </th> <th class="pDesc"> Description</th> <th class="pOpt"> Check Options</th> <th class="pAct"> Action </th> </tr> <tr> <td> <form id="myform1" method="POST" action="displayBOMlist.php" target="workspace" > <input type="text" name="instrumentPN" id="PN"><BR> <input type="button" value="show revisions" onclick="showRev()"> </td> <td> <div id="RV"></div> <button type="button" onclick="getData()">show detail</button> </td> <td id="DS"> </td> <td id="options"></td> <td > <input type="hidden" name="partID" id="partID" > <input type="hidden" name="pRev" id="pRev"> <input type="hidden" name="optCount" id="optCount"> <input type="submit" value="Display BOM"> </form> </td> </tr> </table> PHP側の該当部分は $options = array(); for($i= 0; $i < $optCount; $i++){ $checkNum="check".(string)($i+1); $checkPart="pn".(string)($i+1); if( isset($_POST[$checkNum]) ){ $options[]=$_POST[$checkPart]; echo  "set part=".$_POST[$checkNum]."<BR>"; }

    • ベストアンサー
    • PHP
  • 表の中のセルの位置を把握したいです

    伝票入力の画面を作っているところです。 表内の1番左の「goodsId」 のセルでダブルクリックすると商品一覧ダイアログボックスが 開いて、1件を選択すると、表の中に商品名や単価等を表示する流れになっています。 下のコードはその表(伝票形式)と商品一覧ダイアログ呼び出すところです。 ダイアログを開く → 商品一覧から1件を指定 → 表に商品名等を表示 はうまくいくのですが、表内の表示位置がうまくいきません。 どの行の「goodsId」でダブルクリックしても先頭行に表示されてしまいます。 これは、カレント行の把握が必要なんだと思いますが、やり方がわかりません。 いろいろググってみると、一旦表内のすべてのセルを読み込んでクリックした 場所のrowsインデックスとcellsインデックスを取得するやり方ま見つけたんですが、 私が作ったこのコードにどのように組み込んだらいいのかがわからないのです。 どなたか教えて下さい。 よろしくお願いします。 // 売上明細表示 function indicateSalesDetail(lines){ var res = ''; for (var i = 0; i < lines; i++){ res += '<tr>' + '<td align="center" style="width: 10%;">' + '<input type="text" id="goodsId" name="goodsId" ondblclick="doActionGoodsList();" />' + '</td>' + '<td align="left" style="width: 60%;">' + '<input type="text" id="goodsName" name="goodsName" />' + '</td>' + '<td align="center" style="width: 10%;">' + '<input type="text" id="price" name="price" />' + '</td>' + '<td align="center" style="width: 5%;">' + '<input type="text" id="quantity" name="quantity" />' + '</td>' + '<td align="left" style="width: 15%;">' + '<input type="text" id="amount" name="amount" />' + '</td>' + '</tr>'; } res += '</table>'; var obj = document.getElementById("datatable"); obj.innerHTML ='<table><tr><th>商品ID</th><th>商品名</th><th>単価</th><th>数量</th><th>金額</th></tr>' + res; } // 商品一覧表示処理 function doActionGoodsList(){ var url = "goodslistdialog.php"; var winWidth = "750px"; var winHeight = "500px"; var options = "dialogWidth=" + winWidth + ";dialogHeight=" + winHeight + ";center=1;status=1;scroll=1;resizable=1;\minimize=0;maximize=0;"; var returnValue = window.showModalDialog(url, window, options); var goodsId = returnValue; if(goodsId != null){ $.get('../code/goods/GoodsDetail.php', {"goodsId":goodsId}, callbackGoods); } }

  • チェックボックスが選択されたらファイルを読み込む

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> function getChecked(name) { var AllVals = $('input[name="' + name + '"]:checked').map(function() { return this.value; }); AllVals = $.makeArray(AllVals).join('|'); return AllVals; } function getContents(){ var colorId = getChecked('color_id'); var categoryId = getChecked('category_id'); var serviceId = getChecked('service_id'); var http = $.get ( "http://localhost/eigazuki/results/title:/time:0~300/country_id:" + categoryId + "/genre_id:" + serviceId, null, function ( data ) { $("#serviceListSection").html(data); } ) }; $(function(){ $('input[name]:checkbox').change(function(){getContents();}); }); </script> </head> <body> <input type="checkbox" name="color_id" value="1" />赤 <input type="checkbox" name="color_id" value="2" />黒 <br> <input type="checkbox" name="category_id" value="1">男物 <input type="checkbox" name="category_id" value="2">女物 <br> <input type="checkbox" name="service_id" value="1">季節 <input type="checkbox" name="service_id" value="2">お祝い </body> </html> <section id="serviceListSection"></section> というコードを書き、チェックボックスがチェックされるたびに、 http://localhost/eigazuki/results/title:/time:0~300/country_id:" + categoryId + "/genre_id:" + serviceId の外部ファイルを読み込みたいのですが、全く上手くいきませんなにがダメなのでしょうか? よろしくお願いします!

  • Formのシリアライズができない

    新米プログラマーです。 JavascriptとJavaでショッピング画面を作っています。 以下のコードで function doActionShoppingEntry(){ で登録用のフォームを表示して、 function doActionShoppingAdd(){ Ajax通信で登録処理を行っています。 var data = $('#fmShoppingDetail').serialize(); でフォームの内容をシリアライズしようと しているのですが、うまくシリアライズされず data は空っぽのままです。 読み込む順番とか、スコープの問題かな、とも思ったんですけど、 var data_shoppingDate = $('#shoppingDate').val(); や var data_hinme = $('#hinmei').val(); は認識されて、空欄チェックをちゃんとしてくれます。 いろいろやってみたのですが、シリアライズされない状況が続いています。 どなたかヒントを頂くなりお願いできますでしょうか。 よろしくお願いします。 // ■お買物登録 // 登録画面表示 function doActionShoppingEntry(){ var space = ""; space += '<form id="fmShoppingDetail">' + '<tr>' + '<th>購入日</th>' + '<td><input type="text" id="shoppingDate" /></td>' + '</tr>' + '<tr>' + '<th>場所</th>' + '<td><input type="text" id="place" /></td>' + '</tr>' + '<tr>' + '<th>品名</th>' + '<td><input type="text" id="hinmei" /></td>' + '</tr>' + '<tr>' + '<th>金額</th>' + '<td><input type="text" id="kingaku" /></td>' + '</tr>' + '<input type="button" onclick="doActionShoppingAdd();" value="登録" />' + '<input type="hidden" id="customerId" value="' + $('#customerId') + '" />' + '</form>'; var obj = document.getElementById("datatableShoppingAdd"); obj.innerHTML = space; // お買上日 $(function(){ $('#shoppingDate').datepicker(); $("#shoppingDate").datepicker("option", "dateFormat", "yy/mm/dd"); } ); } // 登録 function doActionShoppingAdd(){ // 必須項目の入力チェック var data_shoppingDate = $('#shoppingDate').val(); if(data_shoppingDate == ""){ window.alert('購入日は空白では登録できません。'); return false; }else{ var data_hinme = $('#hinmei').val(); if(data_hinme == ""){ window.alert('品名は空白では登録できません。'); return false; } } if(window.confirm("登録していいですか?")){ var data = $('#fmShoppingDetail').serialize();                ←ここです。 $('#gon').text("登録内容は" + data); //gon内のテキストに表示 console.log("data[0]==========" + data[0]); $.post('/shoppingadd',data,function(resp, status, XHR){ if(status == "success"){ $('div#status').text("登録しました。"); } }); }else{ return false; } }

  • Ajaxで作成したinputタグが正しく動作しない

    元々htmlで作成してあるform内容をAjaxで送受信し、 その得られたjsonデータを元に新規にテーブルを作成しています。 ここまでは出来ているのですが、更にこのテーブルにそれぞれの項目にソートボタンを実装したいのですが、これが実現しません。 <input type="button"で作成したボタン(元のhtmlにあるボタンと同様の記述)は元ページのphpに遷移してしまい、 <button></button>で作成したボタンは何の動作も行いません。 元々ある検索ボタンと同様に非同期でpostするには 追加で作成したform内の要素はどのようにすれば可能でしょうか? //テーブル作成関数 function create_table(data){ //テーブルヘッダー var text = "<table><thead><tr><th>foo</th><th></th>"; $("li", "#foo_list").each(function(i, v){ text += "<th>" + v.innerHTML + "\      //●inputボタン作成部 <input type='button' class='search_btn' value='検索' />\ <button class='search_btn' value='" + v.id + "_up' ><img src='./foo.gif'></button>\ <button class='search_btn' value='" + v.id + "_down' ><img src='./bar.gif'></button></th>"; }); text += "</tr></thead><tbody>"; ~省略~ //テーブル閉じる text += "</tbody></table>"; $("#result_table").html(text); } //ajax送受信 $(function(){ var jsdata = ""; $('.search_btn').click(function(){ var form = $("#frm"); var json = $(form.serializeArray());   $.ajax({ url : "./hoge.php", type : "post", data : json, success: function (jsdata){ results_data = eval( "(" + jsdata + ")" ); create_table(results_data); } }); }); }); よろしくお願いいたします。

  • jQuery テキストボックス読み取り解除

    標題について、うまく動作しません。 お手数ですが、ご教授願えたらと思っています。 <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.4");</script> 仕様:テキストボックスをクリックしたら、読み取り専用が解除される。 ※Ajaxの初期ロード時に各々の項目はreadOnly=true設定 上記が可能なら、その後拡張仕様として、フォーカスアウトした時に 再度 readOnly=trueに設定 html <table> <tr> <td><input type="text" id="code[1]" value="00001"></td> </tr> <tr> <td><input type="text" id="code[2]" value="00002"></td> </tr> <tr> <td><input type="text" id="code[3]" value="00003"></td> </tr> jQuery (function($){ $('input[type="text"]').click(function(){ $(this).attr('readonly','readonly'); }); }); Ajaxの設定は何とかできなのですが、 jQueryの設定がうまくいきません。 どうか宜しくお願い致します。

  • ラジオボタンの初期値について

    いつも大変お世話になってます。 ラジオボタンで、ページが読み込まれたら、値によって、 選択されている状態にしようと思っているのですが、うまくいきません。 以下、ソース部分です。 ★javascript部分 addOnload(function() { var tantou9 = "<%=szei_hasu_kbn%>" var element9 = document.getElementById("hasu"); for (var i=0; i<element9.options.length;i++) { if(element9.options[i].value === tantou9){ element9.options[i].checked = true; break; }; }; }); addOnload(function() { var tantou10 = "<%=szei_zei_kbn%>" var element10 = document.getElementById("zei"); for (var i=0; i<element10.length;i++) { if(element10.item[i].value === tantou10){ element10.item[i].checked = true; break; }; }; }); 上は、プルダウンの時の処理を真似てるので、違うんだろうなとは思います。 例えば、element10[1].checked = true; だけを実行してもダメでした。 addOnload(function()部分は、他の処理はできるので、ここは間違ってないと思います。 ちなみにサーバーサイドはASPで、<%=szei_zei_kbn%>に値が問題なく入ってることは、 確認できてます。 ★HTML部分です。 <tr> <th> <b>端数</b> </th> <td> <input id="hasu" type="radio" name="zei_hasu" style="width:100%" rows=1 value="0">四捨五入 </td> <td> <input id="hasu" type="radio" name="zei_hasu" style="width:100%" rows=1 value="1">切捨 </td> <td> <input id="hasu" type="radio" name="zei_hasu" style="width:100%" rows=1 value="2">切上 </td> </tr> <tr> <th> <b>税</b> </th> <td> <input id="zei" type="radio" name="zei_zei" style="width:100%" rows=1 value=0>外税 </td> <td> <input id="zei" type="radio" name="zei_zei" style="width:100%" rows=1 value=1>内税 </td> <td> <input id="zei" type="radio" name="zei_zei" style="width:100%" rows=1 value=2>非課税 </td> </tr> どなたかご存知の方がいらっしゃいましたら、ご教授お願いします。 宜しくお願いします。

専門家に質問してみよう