- PR -

改行コード

1
投稿者投稿内容
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-05-21 09:09
お世話になっております。C#.NETでWeb開発しております。
CheckBoxListを使って、可変のデータをDBからAddしています。
また、チェック時はポストバックさせません。→JavaScriptで対応
ボタンクリックイベントでCheckBoxListで選択された項目を
カンマ区切りで送信します。
これまでは、ListBoxを使っていたのですが、操作感の問題で
CheckBoxListになりました。
しかし、項目を追加していくとその分CheckBoxListのサイズがどんどん
大きくなってしまいました。
そこで、<DIV>でくくってスクロールできるようにしました。

ここからが問題です。
DIVでくくったため?doucment.Form1.CheckBoxList1.valueのような記述が
できません。そこで、document.getElement("CheckBoxList1")で見つけることは
できたのですが、値を取得することができません。
innerTextを見ると値が、
"value1
value2
value3"
のようになっています。
この文字列を改行コードかなにかで検索して、配列に格納することはできますでしょうか?
data[0]=value1
data[1]=value2
data[2]=value3
JavaScriptについての質問ですが、よろしくお願いいたします。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-05-21 09:57
splitメソッド
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-05-21 10:12
ありがとうございます。
それで、改行コードをどのように設定したらよろしいのでしょうか?
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-21 10:41
引用:

それで、改行コードをどのように設定したらよろしいのでしょうか?


自分でも調べてみましたか?
エスケープ文字と言って、基本的に C#, Java, C/C++ 等とほとんど同じですよ。

たとえば(私もよく利用しているところの) http://tohoho.wakusei.ne.jp/js/string.htm とかを見れば、すぐに分かりますが……。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-21 10:50 ]
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-05-21 10:54
失礼しました。
検索の仕方が間違っていました。
これから値をとると、
"value1
"
となりますね。まぁどうにでもなるか。。。
これから、
document.getElementById(CheckBoxList1_0").status
などとやって_0、_1、、、と探してみていくしかないですね。。。
結構面倒。
CheckBoxList自体スクロールはでないものなのでしょうか?
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-21 11:19
引用:

BB.NKさんの書き込み (2004-05-21 10:54) より:

これから値をとると、
"value1
"
となりますね。まぁどうにでもなるか。。。


CheckBoxListとか<DIV>とかで試していないので、合っているかどうかは分かりませんが、復帰文字(\r)が残っていませんか?

ちょこちょこっと試しに作ってみたサンプルを……
コード:
<HTML><BODY><SCRIPT language="JavaScript"><!--
var str1 = "aaaa\r\nbbbb\r\ncccc\r\ndddd";
var str2 = str1.split("\n");
var str3 = str1.replace("\r", "").replace("\r", "").split("\n");
document.write("str1 = [" +
  str1.replace("\r", "復帰").replace("\n", "改行")
      .replace("\r", "復帰").replace("\n", "改行")
      .replace("\r", "復帰").replace("\n", "改行")
      .replace("\r", "復帰").replace("\n", "改行") + "]<hr>");
document.write("str2[0] = [" + str2[0].replace("\r", "復帰").replace("\n", "改行") + "]<br>");
document.write("str2[1] = [" + str2[1].replace("\r", "復帰").replace("\n", "改行") + "]<br>");
document.write("str2[2] = [" + str2[2].replace("\r", "復帰").replace("\n", "改行") + "]<br>");
document.write("str2[3] = [" + str2[3].replace("\r", "復帰").replace("\n", "改行") + "]<hr>");
document.write("str3[0] = [" + str3[0].replace("\r", "復帰").replace("\n", "改行") + "]<br>");
document.write("str3[1] = [" + str3[1].replace("\r", "復帰").replace("\n", "改行") + "]<br>");
document.write("str3[2] = [" + str3[2].replace("\r", "復帰").replace("\n", "改行") + "]<br>");
document.write("str3[3] = [" + str3[3].replace("\r", "復帰").replace("\n", "改行") + "]<hr>");
document.write("This is a pen pen.".replace("pen", "book"));
//--></SCRIPT></BODY></HTML>


の実行結果は
コード:
str1 = [aaaa復帰改行bbbb復帰改行cccc復帰改行dddd]
--------------------------------------
str2[0] = [aaaa復帰]
str2[1] = [bbbb復帰]
str2[2] = [cccc復帰]
str2[3] = [dddd]
--------------------------------------
str3[0] = [aaaa]
str3[1] = [bbbb]
str3[2] = [cccc復帰]
str3[3] = [dddd]
--------------------------------------
This is a book pen. 

BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-05-24 10:19
ありがとうございます。
\rのreplaceでよかったのですね。
CheckBoxListのクライアント側(JavaScript)でのチェック確認方法を
記載しておきます。
効率がよいかどうかわかりませんが。。。

コード:
if(document.getElement("CheckBoxList1").innerText != "")
{
  for(i=0;i<document.getElementById("CheckBoxList1").innerText.split(/\n/).length;i++)
  {
    list = "CheckBoxList1_" + i;
    if(document.getElementById(list).status == true)
    {
      data = document.getElement("CheckBoxList1").innerText.split(/\n/)[i].replace("\r","");
    }
    //処理
  }
}

1

スキルアップ/キャリアアップ(JOB@IT)