C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: EnterKeyによるTab移動について


(過去ログ 110 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■65494 / inTopicNo.1)  EnterKeyによるTab移動について
  
□投稿者/ LOC (13回)-(2013/03/01(Fri) 21:45:41)

分類:[ASP.NET (VB)] 

お世話になっております。LOCと申します。

VS2010でASP.NETのWebアプリを製作中です。

ボタンとテキストエリア以外の場合、EnterKeyでタブ移動させたいと考えております。
一応、検索し試してみたのですが、上手くいかず四苦八苦しております。
(JavaScriptでKeyCodeを置き換える方法です。)


IE8以降、Chrome、FireFoxのどのブラウザでもEnterKeyでタブ移動するスクリプトは作成可能でしょうか。

ご教授お願い致します。

※JavaScript初心者です。
引用返信 編集キー/
■65495 / inTopicNo.2)  Re[1]: EnterKeyによるTab移動について
□投稿者/ 末記人 (1回)-(2013/03/02(Sat) 00:11:46)
No65494 (LOC さん) に返信
> お世話になっております。LOCと申します。
>
> VS2010でASP.NETのWebアプリを製作中です。
>
> ボタンとテキストエリア以外の場合、EnterKeyでタブ移動させたいと考えております。
> 一応、検索し試してみたのですが、上手くいかず四苦八苦しております。
> (JavaScriptでKeyCodeを置き換える方法です。)
>
>
> IE8以降、Chrome、FireFoxのどのブラウザでもEnterKeyでタブ移動するスクリプトは作成可能でしょうか。
可能です。

> ご教授お願い致します。
ブラウザ間の方言を補うような実装にすればいいだけです。

> ※JavaScript初心者です。
スクリプトごときに初心者だとかあまり関係ないかな。
jQueryとか使った方が少しは楽かもしれないね。
引用返信 編集キー/
■65497 / inTopicNo.3)  Re[2]: EnterKeyによるTab移動について
□投稿者/ LOC (14回)-(2013/03/02(Sat) 14:01:26)
末記人 さん返信ありがとうございます。


> ブラウザ間の方言を補うような実装にすればいいだけです。
「ブラウザ間の方言を補う」とはどういうことでしょうか。


> スクリプトごときに初心者だとかあまり関係ないかな。
> jQueryとか使った方が少しは楽かもしれないね。

実際にJavaScriptを書いてみて難しいと思ったので、「初心者」と書かせていただきました。
jQueryもJavaScriptの一種だと認識しているのですが、それは誤りなのでしょうか。

引用返信 編集キー/
■65498 / inTopicNo.4)  Re[3]: EnterKeyによるTab移動について
□投稿者/ ggrks (1回)-(2013/03/03(Sun) 20:02:11)
No65497 (LOC さん) に返信
> 末記人 さん返信ありがとうございます。
>
>
>>ブラウザ間の方言を補うような実装にすればいいだけです。
> 「ブラウザ間の方言を補う」とはどういうことでしょうか。
>
>
>>スクリプトごときに初心者だとかあまり関係ないかな。
>>jQueryとか使った方が少しは楽かもしれないね。
>
> 実際にJavaScriptを書いてみて難しいと思ったので、「初心者」と書かせていただきました。
> jQueryもJavaScriptの一種だと認識しているのですが、それは誤りなのでしょうか。

ggrks
引用返信 編集キー/
■65499 / inTopicNo.5)  Re[3]: EnterKeyによるTab移動について
□投稿者/ shu (209回)-(2013/03/04(Mon) 08:02:54)
No65497 (LOC さん) に返信
> 末記人 さん返信ありがとうございます。
>
>
>>ブラウザ間の方言を補うような実装にすればいいだけです。
> 「ブラウザ間の方言を補う」とはどういうことでしょうか。
>
>
>>スクリプトごときに初心者だとかあまり関係ないかな。
>>jQueryとか使った方が少しは楽かもしれないね。
>
> 実際にJavaScriptを書いてみて難しいと思ったので、「初心者」と書かせていただきました。
> jQueryもJavaScriptの一種だと認識しているのですが、それは誤りなのでしょうか。
>
初心者とか書くのはあまり意味がないのでやめた方がいいです


google検索=>適当なリンク先
http://kuri6005.sakura.ne.jp/aspnet/wiki/index.php?Enter%A5%AD%A1%BC%A4%C7%A5%D5%A5%A9%A1%BC%A5%AB%A5%B9%A4%F2%B0%DC%C6%B0%A4%B9%A4%EB%CB%A1


引用返信 編集キー/
■65500 / inTopicNo.6)  Re[4]: EnterKeyによるTab移動について
□投稿者/ LOC (15回)-(2013/03/04(Mon) 11:12:16)
shu さん、返信ありがとうございます。

> 初心者とか書くのはあまり意味がないのでやめた方がいいです
以後、気をつけます。


> google検索=>適当なリンク先
> http://kuri6005.sakura.ne.jp/aspnet/wiki/index.php?Enter%A5%AD%A1%BC%A4%C7%A5%D5%A5%A9%A1%BC%A5%AB%A5%B9%A4%F2%B0%DC%C6%B0%A4%B9%A4%EB%CB%A1

教えていただいたサイトの内容を試してみたのですが、フォーカスを移動したテキストボックスが MultiLine のテキストのため
改行コードが入ってしまいます。

IE9では keyCode の置き換えができないからなのでしょうか。


以下のサイトも参考しました。
http://jsajax.com/Articles/disableenterkey/688
引用返信 編集キー/
■65501 / inTopicNo.7)  Re[5]: EnterKeyによるTab移動について
□投稿者/ howling (217回)-(2013/03/04(Mon) 12:29:40)
No65500 (LOC さん) に返信
こんにちわ。

見てて思ったのですが、通常マルチライン設定にしている場合は、
Enterキーを押すと改行する、というのが正しい挙動だと思います。

その上で書かれているということは、どのような挙動にしたいのでしょうか。

1.Enterキーを押すことで改行され、かつ次のTabIndex指定してある値のコントロールに飛ぶ
2.Enterキーを押すことでは改行されず、次のTabIndex指定してある値のコントロールに飛ぶ
  (ただし、これだと改行したい場合には、改行コードをコピペして改行することくらいしかできないです)

私としては、いずれも変な挙動に感じてしまうので、そもそも考えが間違っているのではないか?と思っていますが、
いかがでしょうか?

※質問を見て調べて、ggrksって思うことは多々あるのですが、ここまで書かれているのは珍しいなぁ。
 でも、ある程度調べてから質問するのは質問する側の常識の範疇だと思いますので、
 もし調べた上で質問している場合は、調べた内容を書いた方がいいですよ。
 全く調べていなくて聞く場合は、ggrksって書かれて放置されても良いくらいに考えておくといいかもです。
引用返信 編集キー/
■65502 / inTopicNo.8)  Re[6]: EnterKeyによるTab移動について
□投稿者/ LOC (16回)-(2013/03/04(Mon) 12:51:54)
No65501 (howling さん) に返信

> 見てて思ったのですが、通常マルチライン設定にしている場合は、
> Enterキーを押すと改行する、というのが正しい挙動だと思います。

すみません、説明不足でした。

フォーム内に以下のテキストボックスがあるとします。
・通常のテキストボックス(Aとします)
・MultiLine のテキストボックス(B)


Aでエンターキーを押し、Bにフォーカスを移動させることはできました。
しかし、Bのテキストボックスにフォーカスを移動したとき、Bのテキストボックスに改行コードが入力されてしまい、
Bの2行目でカーソルが点滅している状態になってしまいます。

先ほども記載しました以下のサイトを参考に、onKeyPress・onKeyDownのどちらも試してみましたが、改行コードが入力されてしまいます。
http://jsajax.com/Articles/disableenterkey/688


挙動としては、MultiLineのテキストボックス、ボタン以外のコントロールで
エンターキーを押すことで、次のタブインデックスにフォーカスを移動させたいと考えております。


> ※質問を見て調べて、ggrksって思うことは多々あるのですが、ここまで書かれているのは珍しいなぁ。
>  でも、ある程度調べてから質問するのは質問する側の常識の範疇だと思いますので、
>  もし調べた上で質問している場合は、調べた内容を書いた方がいいですよ。
>  全く調べていなくて聞く場合は、ggrksって書かれて放置されても良いくらいに考えておくといいかもです。

すみませんでした。
一応調べてみたのですが、
JavaScriptでエンターキーが押されたらタブのキーコードに置き換えるという方法を試してみたのですが、
全く動作しませんでした。
引用返信 編集キー/
■65503 / inTopicNo.9)  Re[7]: EnterKeyによるTab移動について
□投稿者/ howling (218回)-(2013/03/04(Mon) 13:10:40)
No65502 (LOC さん) に返信
> 挙動としては、MultiLineのテキストボックス、ボタン以外のコントロールで
> エンターキーを押すことで、次のタブインデックスにフォーカスを移動させたいと考えております。
これならまともですね。


> 先ほども記載しました以下のサイトを参考に、onKeyPress・onKeyDownのどちらも試してみましたが、改行コードが入力されてしまいます。
> http://jsajax.com/Articles/disableenterkey/688

んー、こちらのコードしっかり見ていないので何なのですが、
要はイベントのキャンセルが出来てないってことなんでしょうね。
送られてくるEventArgsに、cancelって無いやつでしたっけ?
cancelしないでタブを動かすなどした場合は、
動かした後に、本来の挙動を行うと思います。
(この場合だと、次コントロールに動かすのは自分でやってから、次コントロール上でEnter押す挙動が行われる)

もし、cancelプロパティがあったら、それをtrueにしてイベントを終えてみてください。
自分の書いたコードの動作のみ行われて、本来の挙動はしないはずですよ。
引用返信 編集キー/
■65504 / inTopicNo.10)  Re[8]: EnterKeyによるTab移動について
□投稿者/ LOC (17回)-(2013/03/04(Mon) 14:58:41)
No65503 (howling さん) に返信

> んー、こちらのコードしっかり見ていないので何なのですが、
> 要はイベントのキャンセルが出来てないってことなんでしょうね。
> 送られてくるEventArgsに、cancelって無いやつでしたっけ?
> cancelしないでタブを動かすなどした場合は、
> 動かした後に、本来の挙動を行うと思います。
> (この場合だと、次コントロールに動かすのは自分でやってから、次コントロール上でEnter押す挙動が行われる)
>
> もし、cancelプロパティがあったら、それをtrueにしてイベントを終えてみてください。
> 自分の書いたコードの動作のみ行われて、本来の挙動はしないはずですよ。


キャンセルするようなプロパティがなかったようなので、よくよくソースを確認してみたところ、
onKeyPress イベントで エンターキーイベント処理の関数を呼びっぱなしの状態になっていたのが原因のようでした。

以下のように変更したところ、Multilineのテキストボックスにもちゃんとフォーカスを移動するようになりました。

onKeyPress="エンターキーイベント処理"



onKeyPress="return エンターキーイベント処理"


howling さん、本当にありがとうございました。
次回質問させていただく際には、十分に調べて説明不足のないように致します。
解決済み
引用返信 編集キー/
■65505 / inTopicNo.11)  Re[8]: EnterKeyによるTab移動について
□投稿者/ howling (219回)-(2013/03/04(Mon) 15:00:37)
追記です。

shuさんが書いてくださったURLでは、
「Enterキーが押された時に次のコントロールへ移動して、event.returnValue = false;と指定する」
というのがonKeyDownで行われているんですね。

この、event.returnValueが「このイベントを実行するか否か」だと思います。
自分で次のコントロールへ移動しているから、何もするなよってことだと。

そこらへん含めてできてますか?
引用返信 編集キー/
■65506 / inTopicNo.12)  Re[9]: EnterKeyによるTab移動について
□投稿者/ howling (220回)-(2013/03/04(Mon) 15:07:23)
No65504 (LOC さん) に返信
おっと。解決されたようで何よりです。
どうやら書き込みの時間がすれ違ってしまったようですね。
解決済み、改めてつけておきます。

//色々言われても、プログラムを嫌いにならないでくださいね。好きこそ物の上手なれ、というのはありますから。
//でも、次回からおっしゃる通り、説明の詳細お願いします!ではでは!
解決済み
引用返信 編集キー/
■65507 / inTopicNo.13)  Re[9]: EnterKeyによるTab移動について
□投稿者/ LOC (18回)-(2013/03/04(Mon) 15:11:17)
>shuさんが書いてくださったURLでは、
>「Enterキーが押された時に次のコントロールへ移動して、event.returnValue = false;と指定する」
>というのがonKeyDownで行われているんですね。
>
>この、event.returnValueが「このイベントを実行するか否か」だと思います。
>自分で次のコントロールへ移動しているから、何もするなよってことだと。
>
>そこらへん含めてできてますか?


event.returnValue も記載していたのですが、Enterキーのイベントの際
onKeyPressに関数を設定しただけで戻りを設定していなかったのが、原因のようでした。


onKeyPress="return エンターキーイベント処理" と設定しなければならないのを

onKeyPress="エンターキーイベント処理" としていました。


処理の方ばかり気にして、見落としておりました。


howlingさん、とてもわかりやすく説明していただき、ありがとうございました。

また返信くださった皆様、ありがとうございました。
次回投稿時は、十分に調べたうえ、投稿させていただきます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -