
私は、windows環境でPHPを使って、サイトを構築しています。
JavaScriptに関してはJqueryを多少使ったことがある程度です。
調べてもよくわからなかったものがいくつかあるので、ご存知の方がいましたら、どれか1つでも教えて頂きたいです。
知りたい内容は以下の3点です。
1、フォームの入力欄をクリックするとその入力欄が浮かび上がり、入力してSubmitボタンを押すと元のページに値が反映される処理(Jqueryのlightpopを使ってみましたが、うまく値が送れませんでした。)
2、フォームの入力欄を増やしたり、減らしたりする処理
3、フォームの入力欄の順番を入れ替える処理(矢印などをつけて入れ替えたいです)
情報が不足していましたらご指摘ください。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
1.については何故うまく出来なかったのかこれだけでは解りません。
2.については、DOM要素を操作する関数で実現します。
例えば、
<form id="hoge">
<input type="text">
</form>
といったform要素があったとして、
var form_elm=document.getElementById("hoge");
でform要素を取得します。
追加したい要素は
var input_elm=document.createElement('input');
input_elm.setAttribute("type","text");
input_elm.setAttribute("value","xxx");
あるいは、
var div_elm=document.createElement('div');
div_elm.inneHTML='<input type="text" value="xxx">'
のように作ります、作った要素を親であるform要素に
form_elm.appendChild(input_elm);
form_elm.appendChild(div_elm);
みたいに追加するのです。こおいったDOMのメソッドやプロパティ
操作は他にもいろいろあります。
3.については2の応用で、移動したい要素を取得した上で、削除し
別の場所に追加するといった処理になります。
矢印については、ホバー時にCSSの"cursor:"属性で矢印画像を要素にセッ
トすれば、実現できます。
まず、簡単な物をJAVASCRIPTだけで作ってみましょう。
そうすれば、理解が深まりライブラリーの使い方もわかります。
ちなみに2.なんてjQuery使えば1行ですみますし、3.についても
jQuery UIライブラリーに「draggable 」とか「droppable 」とか
があるので、自分で作りこむ手間が省けますが、使いこなすには
やはり、基礎知識が必要となります。
No.6
- 回答日時:
#1と#3です。
>(それにしてもそんなやつをいっぱい見かけるのですが)
たしかにおおいね。じぶんもひとのこといえませんが。
いや~かこに、すごいひとにしてきされてね。
いつか、ちゃんすがあったら、だれかにやろうとおもってね。^^;
そのちゃんす、こんどは、yyr446さんにぷれぜんと。
あと、<script>とか<style>にtypeぞくせいをつけないひとにも、
いけるよ!
あと、<html>だけですませるひと。
あと、<title>がないひと。
あと、<img>にaltをはぶいてるひと。
あと、ちゃんとせんげんすれば、<head>とかしょうりゃくできるのを
しらないひと
などなど。
No.5
- 回答日時:
No2です。
確かにHTML4.01 Strictのルールでは、<form>の下に直接インライン要素をおくのは×だったんですね
失礼しました。
(それにしてもそんなやつをいっぱい見かけるのですが)
No.4
- 回答日時:
No.2です。
(この質問の回答じゃないけど)「いんらいんようそをいきなり
form_elm.appendChild(input_elm); 」
って普通はだめだったんですね。
改行されないだけだと思ってたんですけど....
子の方にinsertBefore()も同じでしょうね
No.3
- 回答日時:
#1です。
</p>
</form>
が、ぬけてました。ごめんなさい。
いんらいんようそをいきなり
form_elm.appendChild(input_elm);
するのは、・・・・・。
No.1
- 回答日時:
なんとなく1にかいとう。
でも、まちがいがいっぱいありそう。
test.htmlからtest1.htmlを
=== test.html ===
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>TEST</title>
<body>
<form id="test">
<p>
<input type="text" name="ab" value="123">
<input type="text" name="cd" value="XYZ">
<input type="button" value="ef" onClick="window.open(makeURL('test1.html','ab','cd'))">
</p>
<p>
<input type="text" name="ef" value="">
<input type="text" name="gh" value="">
<script type="text/javascript">
function makeURL( file, element0 ) {
var rst = [ ];
var cnt = 1;
var tgt;
while( tgt = arguments[ cnt++ ] ) {
rst.push( encodeURIComponent( tgt ) + '=' +
encodeURIComponent( getValue( tgt ) || '' ) );
}
return file + ( rst.length == 0 ? '': '?' + rst.join( '&' ));
}
function getValue ( inpName ) {
var d = document;
var counter = 0;
var elements = d.getElementsByName( inpName ) || [ d.getElementById( inpName ) ];
var e;
while( e = elements[ counter++ ] ) {
switch( e.type ) {
case 'hidden' : case 'submit': case 'text':
case 'button' : case 'reset' : case 'textarea':
return e.value;
break;
case 'checkbox': case'radio':
if( e.checked ) return e.value;
break;
case 'select-one': // case 'select-multiple':
var cnt = 0, o;
while( o = e.options[ cnt++ ] )
if( o.selected ) return e.value;
break;
default:
}
}
return null;
}
</script>
===== test1.html =====
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>TEST1</title>
<body>
<form id="ab">
<p>
<input type="text" name="ab" value="">
<input type="text" name="cd" value="">
<input type="button" value="close" onClick="closeWin()">
</p>
<script type="text/javascript">
function closeWin() {
var w = window.opener;
if( w ) {
setFormValue( w.document, 'ef', '===' + getValue( 'ab' ) + '===' );
setFormValue( w.document, 'gh', '===' + getValue( 'cd' ) + '===' );
window.close();
}
}
function getLocation () {
var par = location.search.substring(1).split( '&' );
var cnt = 0, pac, nv, ret = [ ];
while( pac = par[ cnt++ ] ) {
nv = pac.split( '=' );
ret[ decodeURIComponent( nv[0] ) ] = decodeURIComponent( nv[1] );
}
return ret;
}
function setFormValue ( d, name, val ) {
var i = 0, j = 0, o, p;
var objs = d.getElementsByName( name );
if( 0 === objs.length ) objs = [ d.getElementById( name ) ];
while( p = objs[ i++ ] ) switch( p.type ) {
case 'text': case 'textarea': case 'button': case 'reset': case 'submit': case 'hidden':
p.value = val; break;
case 'checkbox':
p.checked = val; break;
case 'radio':
p.checked = ( p.value == val ); break;
case 'select-one': case 'select-multiple':
while( o = p.options[ j++ ] ) o.selected = ( o.value == val );
default:
}
}
function getValue ( inpName ) {
var d = document;
var counter = 0;
var elements = d.getElementsByName( inpName ) || [ d.getElementById( inpName ) ];
var e;
while( e = elements[ counter++ ] ) {
switch( e.type ) {
case 'hidden' : case 'submit': case 'text':
case 'button' : case 'reset' : case 'textarea':
return e.value;
break;
case 'checkbox': case'radio':
if( e.checked ) return e.value;
break;
case 'select-one': // case 'select-multiple':
var cnt = 0, o;
while( o = e.options[ cnt++ ] )
if( o.selected ) return e.value;
break;
default:
}
}
return null;
}
var v = getLocation();
var k;
for( k in v ) {
setFormValue( document, decodeURIComponent( k ), decodeURIComponent( v[k] ) );
}
</script>
コードまで書いていただきありごとうございます。
勉強不足で完璧には理解できてないですが、Closeをクリックしたときに値が元ページに送られていたので、作りたいものに近付けるかと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Javascript】formで取得した...
-
複数のsubmitボタンで押された...
-
大量のselect要素のvalueを短い...
-
hiddenのvalueの値を変えたい
-
javascriptでhiddenに二次元配...
-
CDOMailで本文テキストの文字コ...
-
クイズ作成:15個の問題から5個...
-
電卓のJavaScript
-
name属性が同じフォームが複数...
-
3桁区切りのカンマをつけたい...
-
ASP.NET MVC 3
-
Kintone(キントーン)でドロップ...
-
フォーム画面での処理についてです
-
他フォームの入力データの引継ぎ
-
value内に変数を入れたい
-
setIntervalの間隔を途中で変更...
-
eval()を使わずに数値を取得し...
-
自動的に連番生成したURLにリン...
-
VB.NET DateTimeの型について
-
ラジオボタンにタブインデック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
複数のsubmitボタンで押された...
-
setIntervalの間隔を途中で変更...
-
VB.NET DateTimeの型について
-
JavaScriptによる自動計算フォ...
-
javascriptでhiddenに二次元配...
-
name属性が同じフォームが複数...
-
フォームで入力した値を別のフ...
-
JAVASCRIPTで、ボタンを押した...
-
プルダウン選択時、既に入力済...
-
どのボタンがクリックされたの...
-
チェックボックスがundefinedと...
-
eval()を使わずに数値を取得し...
-
ラジオボタンと連動して文字列...
-
ループで連続したフォームの値...
-
クイズ作成:15個の問題から5個...
-
ラジオボタンを押して計算結果...
-
コピーすると改行コードがCRと...
-
自動的に連番生成したURLにリン...
おすすめ情報