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

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

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

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

JavaScript

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

jQuery

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

Q&A

解決済

1回答

5285閲覧

ドラッグアンドドロップでtextareaにテキストを挿入したいのですが

pkmn5b

総合スコア7

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

JavaScript

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

jQuery

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

1グッド

0クリップ

投稿2015/11/18 02:11

ドラッグアンドドロップを使ってテキストエリアに4文字区切りで挿入していくというものを作っているのですが、
FireFoxでは動作しましたが、IE、Chromeで動かしてみたところ
IE:エラーは出ないがテキストが入らない
Chrome:Uncaught TypeError: Cannot read property 'value' of undefined というエラーが出る
といった感じで躓いています。
ソースは以下のようになっております。

###ソースコード

html

1<style> 2h1 { padding: .2em; margin: 0; font-size:14px; } 3#dragTest { float:left; width: 15%; margin-right: 2em; } 4#drop { width: 200px; float: left; margin-top: 1em; } 5/* style the list to maximize the droppable hitarea */ 6#drop td { margin: 0; padding: 1em 0 1em 3em;} 7#drop td { border: 1px #000 solid; } 8</style> 9<script> 10$(function( e ){ 11 $( "#drag" ).accordion(); 12 f_drag(); 13 f_drop( e ); 14}); 15</script> 16<div id="dragTest"> 17 <h1 class="ui-widget-header">クラス</h1> 18 <div id="drag"> 19 <h2><a href="#" draggable="false">test</a></h2> 20 <div> 21 <ul> 22 <li>AAAA</li> 23 <li>BBBB</li> 24 <li>CCCC</li> 25 <li>DDDD</li> 26 <li>EEEE</li> 27 </ul> 28 </div> 29 </div> 30</div> 31<div id="drop"> 32 <table border="1"> 33 <tr> 34 <th>droptest</th> 35 <td> 36 <div class="drop-target"> 37 <textarea cols="5" rows="2" style="overflow:auto;" id="drop1"></textarea> 38 </div><br> 39 <div class="drop-target"> 40 <textarea cols="5" rows="2" style="overflow:auto;" id="drop2"></textarea> 41 </div><br> 42 <div class="drop-target"> 43 <textarea cols="5" rows="2" style="overflow:auto;" id="drop3"></textarea> 44 </div><br> 45 <div class="drop-target"> 46 <textarea cols="5" rows="2" style="overflow:auto;" id="drop4"></textarea> 47 </div><br> 48 </td> 49 </tr> 50 </table> 51</div>

javascript

1var repComma, str, parentElm, childElm, rect, X, Y; 2//ドラッグ 3function f_drag( e ) { 4 $( "#drag li" ).draggable({ 5 appendTo: "body", 6 revert: "invalid", 7 helper: "clone", 8 cursor: "pointer" 9 })//draggable 10}//f_drag 11//ドロップ 12function f_drop( e ) { 13 $( ".drop-target" ).droppable({ 14 drop: function( e, ui ) { 15 //座標取得 16 rect = this.getBoundingClientRect(); 17 //スクロールの誤差考慮 18 X = rect.left + pageXOffset; 19 Y = rect.top + pageYOffset; 20 //座標を指定して親要素を取得 21 parentElm = document.elementFromPoint( X, Y ); 22 //子要素の取得 23 childElm = parentElm.children[0]; 24 25 //テキストボックスの中身とドロップされたテキストを入れる 26 if( childElm.value != null){ 27 str = ( childElm.value + ui.draggable.text() ); 28 //一度カンマを取り除く 29 repComma = str.replace(/,/g, ""); 30 31 //下4桁ずつカンマ区切りにしていく 32 while( repComma != repComma.replace( /(\w+)(\w{4})/, "$1,$2" ) ) { 33 repComma = repComma.replace( /(\w+)(\w{4})/, "$1,$2" ) 34 }//while 35 //テキストボックスに追加 36 childElm.value = repComma; 37 } else { 38 childElm.value = ui.draggable.text(); 39 }//if 40 }//drop 41 })//droppable 42}//f_drop

ご指摘のほどよろしくお願いします。

MaShiRo_H👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

検証はしていませんが、

javascript

1 drop: function( e, ui ) { 2 childElm = $(this).children('textarea').get(0);

で上手くいったりしませんか?

投稿2015/11/18 08:12

編集2015/11/18 08:14
Lhankor_Mhy

総合スコア36087

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

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

pkmn5b

2015/11/18 08:36

各ブラウザで試してみましたがうまくいきました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問