• ベストアンサー

テキストフィールドへの入力を禁止するには?

「JavaScript例文辞典」で掲載されている「テキストフィールドへの入力を禁止する」方法ですが.... ↓ http://www.openspc2.org/reibun/javascript/form_textfield/007/index.html これを「入力禁止」と「入力可能」ボタンで切り替えていますが。そうではなくて、選択できない、最初から入力できない方法はどうやりますか? 単にテキストフィールドへの入力を禁止したいだけなので、他の書き方があれば教えて下さい。

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.8

disabled も ネスケ4では動作しません。 どのブラウザでも入力不可にするには、No.1の回答にある「onFocus="this.blur()"」を使うしかありませんが、これだってJavaScriptがOFFだと無効です。 絶対に値を変えさせたくないのなら、送信用に hidden を使い、表示用に name なしの text を使ってはどうでしょうか。 <input type="hidden" name="name" value="xxx"> <input type="text" value="xxx" onFocus="this.blur()" style="background:#CCCCCC"> text の方は name が無いので送信されません。 ネスケ4では効きませんが、スタイルシートで背景色を変えれば、それなりには見えます。 これなら、たいていは書き換え不能ですし、最悪書き換えられてもデータは保護されます。

megawind
質問者

お礼

返事遅れまして申し訳ございません。アドバイスの通りIEもNNも対応できました!感動しました!!styleはバックグランドではなくて文字色を薄ブルにしました。 ありがとうございました。

その他の回答 (7)

回答No.7

こんな感じで出来ますけど。。。 サーバにも text1=てすと がpostされます。 <form name="F1" method="post" action="/hohoho.do"> <input type="text" name="text1" value="てすと" disabled><BR> <input type="submit" name="Submit" value="送信" onclick="document.F1.text1.disabled=false;"> </form>

回答No.6

表示時にはdisable=trueにしておいて、submitボタン押下時にdisable=false にしてサーバに送信するのがいいかと思います。

megawind
質問者

お礼

押下時だけdisable=falseにするにはどう書くでしょうか? いろいろ試しにやりましたが、やはり送信しなくなるです...

  • shorn
  • ベストアンサー率41% (12/29)
回答No.5

readOnlyはIEのみの機能だったような・・・

megawind
質問者

お礼

アドバイスありがとうございます。 IEとネスケ両方対応する方法はありますか?

回答No.4

先ほどの回答の一部訂正です。 readonlyではなくreadOnlyでした。 これで、以下のようにJavaScriptからreadOnly属性を変更することができます。 <FORM name="FORM1"> <INPUT type="text" name="kore" value="hohoho" size="100" readOnly> <BUTTON type="button" onClick="window.document.FORM1.kore.readOnly=false;">書込不可</BUTTON> <BUTTON type="button" onClick="window.document.FORM1.kore.readOnly=true;">書込可</BUTTON>

megawind
質問者

お礼

ご回答ありがとうございました。 確かに指摘の通りdisableにするとデータは渡さなくなるので、readOnlyを使えば完璧です! 文字の色はINPUT STYLEで似たような感じにしました。 お陰様でなんとか希望通りにできましたので、ありがとうございました。

回答No.3

JavaScriptでなくてHTMLでできます。 <INPUT type="text" name="kore" value="hohoho" disabled> とやれば入力できなく、文字がグレイになります。 しかし、submitボタンでサーバに送信したい時、送信されなくなります。 (リクエストに含まれない) <INPUT type="text" name="kore" value="hohoho" readonly> とやれば入力できないですが、サーバに送信されます。 但し、文字はグレイになりません。ネスケ6はだめだったような??? で、以下のようにすればdisabled属性をJavaScriptから変更できます。 <FORM name="FORM1"> <INPUT type="text" name="kore" value="hohoho" size="100" disabled> <BUTTON type="button" onClick="window.document.FORM1.kore.disabled=false;">表示</BUTTON> <BUTTON type="button" onClick="window.document.FORM1.kore.disabled=true;">非表示</BUTTON>

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

<table border ><td width=200><font color=#aaaaaa>変更できない文字列</font></td></table> こうとか^^; 変更や入力して欲しくないのに、テキストフィールドを使いたい理由はなんですか?

megawind
質問者

お礼

ありがとうございます。 アドバイスのようにしても文字色は変わりませんでしたが、 <input style="color : cornflowerblue;" type=text name="name" readOnly> このようにするとなんとか似たような感じでした、ありがとうございました。

megawind
質問者

補足

入力してほしくない理由は同じデータベースを使ってユーザーによって編集できるとできない項目を分けたいためです。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

<input type="text" onFocus="this.blur()"> でいいんじゃないでしょうか。

参考URL:
http://www.openspc2.org/reibun/javascript/form_textfield/007/index.html
megawind
質問者

お礼

ありがとうございます。 確かにこれで入力できないようになりましたが、フィールド内の文字(フィールドボックス)の色をグレイにすることは可能でしょうか?要するに一目で見て入力できないことがわかるようにしたいですが...

関連するQ&A

  • ラジオボタンが選択されたらテキストフィールドを入力可能にする方法

    社会人2年目のSEです。 JavaScriptが書けなくて困っています。 実装内容は以下の通りです。 【実装内容】 ・ラジオボタンが3つ。 ・そのうち2つはただのラジオボタン。 ・もう1つは、そのラジオボタンを押したらテキストボックスに値を入力可能にするもの。 【画面イメージ】 ○ AAA ○ BBB ● CCC [テキストボックス] ↑ラジオボタン(CCCのラジオボタンがチェックされてる時のみ、テキストボックス入力可能) 以下のサイトのソースを参考に実装可能かと思っています。 違うのはサンプルソースのテキストボックスを2つ削ればいいだけなので。 http://www.openspc2.org/reibun/javascript/form_radio/006/index.html このソースを参考にして作ってみたのですが、技術力が足りないため、動かすことができませんでした。 アドバイスよろしくお願い致します。

  • テキストフィールドに入力した値の移動

    JavaScriptで、以下のことを実行したいのですが 初歩的なところでつまずいていて困っております。 --- フォーム[form1]内に、テキストフィールド[t1],[t2]と、 ボタン[btn]があります。 [t1]に文字を入力し、[btn]をクリックすると [t1]の値が[t2]に移動する --- *フレームは使っておりません。 簡単と思っていたのですが、 JavaScriptの基礎がわかっていないため 応用がきかなく固い頭のため困っています。 どうか宜しくお願いいたします。

  • javascriptで入力禁止文字をチェック

    javascriptで入力禁止文字をチェック 初めて質問させていただきます。 javascriptで入力フォーム(テキストフィールド)に入力された文字列の中に入力禁止文字がないかをチェックしたいとおもっております。 例えば、テキストフィールドに「バカ」「ハゲ」等と入力されており、送信ボタンを押すと「入力禁止文字が含まれています」とアラートが表示されるといったものです。 入力禁止文字がなければ、送信ボタンをクリックし、指定されたURLへジャンプしたいと考えています。 javascriptのソースをお教えいただけたり、参考になるサイトをお教えいただければ助かります。 よろしくお願いします。

  • テキストフィールド入力文字列を別の場所に表示

    テキストフィールドに入力した文字列が、ボタンクリック時に 同じ画面上のある領域に表示される様な仕組みを考えています。 この、ある領域がテキストフィールドである場合はJavaScriptを使用して 簡単に出来る事は確認済みなのですが、この表示文字列は変更されたくありません。 そこで、テキストフィールドの入力禁止措置を施し、これもOKなのですが、もっと単純に HTMLとして通常の表示文字列(テキストフィールド等ではなく)として 表示したいのです。 1)VisualBasicでいうところのlabelコントロールみたいな入力不可の   オブジェクトはHTMLとしてありますか?   (色々探したけど無いですよね?多分。) 2)この様な事を実現する場合、HTMLとJavaScriptではどの様に行うのですか? 以上、よろしくお願いします。

  • 複数のテキストフィールドを同時にfocusする

    ブラウザの仕様から考えてもダメもとですが。。。 JavaScriptで1ページに複数あるテキストフィールドを同時にfocusまたは入力値を選択状態する方法はありませんか?JavaScript以外でも構いません。 ちなみに、テキストフィールドのname属性が同じ場合です。 【例】 <form name="form1"> <input type="text" name="qqq" size="30"> </form> <form name="form2"> <input type="text" name="qqq" size="30"> </form>

  • テキストフィールドなどに入力の際

    2つ質問があるのですが 質問(1) テキストフィールドなどに入力した際 例えば『go』と入力すると、入力候補として 『goo』や『google』などが表示され選択したものを 入力するようにしたいのですが、 JavaScriptで可能でしょうか? 質問(2) さらに(1)で入力したのが『goo』だとして もうひとつテキストフィールドを用意して その新しいテキストフォールドに 自動的に『http://www.goo.ne.jp』といった 文字列を入力したのですが可能でしょうか? どなたかお願いします!!

  • コピー&ペースト禁止のテキストフィールドの設置の仕方?

    こんにちは,よろしくお願いします。 よく会員登録のフォームにおいて,メールアドレスやパスワードの確認をするために,2つのテキストフィールドを設けて,2つ目のフィールドへのコピー&ペーストを禁止しているページがありますが,このようにテキストフィールドのコピー&ペーストを禁止する方法を教えてください。お願いします。当方は,PHPやJavaScriptについての基礎知識がありますので,この方法の実現のために必要であれば,具体的にプログラム触れてご解説いただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • Javascriptsによるテキストフィールド上の数字のインクリメントについて

    お世話になります。 現在やっているゲーム中に使うカウンターとロガーを作成することを思い立ち、HTML+PHP+MySQLにてWebの作成を開始したのですが、その入力フォームを便利にしようとしてちょと詰まってます。 フォーム内容としては テキストフィールド インクリメントボタン デクリメントボタン テキストフィールド インクリメントボタン デクリメントボタン テキストフィールド インクリメントボタン デクリメントボタン サブミットボタン という形で作成しておりまして テキストフィールドには数字を入力しますがその右側にボタンを設けてそのボタンでも数字を操作できるようにしたいのでjavascriptに手を出したのですが、どうにも上手く動かせません。 質問に文字数制限がきついのでちょと簡略化させてもらいまして <script type="text/javascript"><!-- function increment(i) { document.testform.elements["text"+i].value = eval(document.testform.elements["text"+i].value) + 1 } // --></script> </head> <body> <FORM name="testform"> <input type="text" name="text1" value=0><br> <input type="button" value="1" onClick="increment(1)"><br> </FORM> 上記では動くのですが最後のonClick=の後をできればダイレクトに"increment(text1)"にしたく色々いじっているのですがどうにも上手くいきません。 何かアドバイスを頂けないかと思うのですがいかがでしょうか。 よろしくお願いいたします。 また1のインクリメントだけではなく3増やすボタンも同時につけたいと思いますが、こちらのtipsもありましたらお教え頂きたく思います。

  • テキストフィールドに入力した数だけ円を表示する

    お世話になります。 表題の件ですが、どうしてもうまくいかなくて困っています。 Javaアプレットを使って、テキストフィールドに入力した数だけ円を描くというプログラムを作成しているのですが、下記を実行してもエラーになってしまい、 テキストフィールドに数字を入力しても何も出てこない状態です。 import java.awt.*; import java.applet.*; import java.awt.event.*; public class drawCircle extends Applet implements ActionListener{ TextField Circle; public void init(){ Circle = new TextField("", 2); add(Circle); Circle.addActionListener(this); } public void actionPerformed(ActionEvent e){ int CircNum = Integer.parseInt(Circle.getText()); repaint(); } public void paint (Graphics g){ int x=20; for(int i=0; i<=CircNum; i++){   ←※ここが悪いらしい g.drawString("◎", x, 20); x +=20; } } } ※の部分では、"CircNumを解決できません"と表示されてしまいます。 テキストフィールドを作成して、テキストフィールドに入力された数字を CircNumに代入して、その数だけ◎を描くというつもりで 上記を作成したのですが、なぜ※のようなエラーがでてきてしまうのでしょうか。 メソッドを超えてCircNumを使用しているからかな、と思うのですが、 解決方法がわかりません。 どなたかご教授いただけませんでしょうか。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Enterキーで関数を実行@Netscape

    JavaScriptで、テキストボックスを使ったを作っています。 とりあえず、テキストボックスにデータを入れる前でも後でもいいので、Enterを使ってある関数を呼び出したいと思っています。 しかし、JavaScriptの例文を載せてあるサイトによると、そのスクリプトはIEでしか動かないとありました。ためしに、ホントかどうか試してみると本当に動くことはなかったの(FireFoxで)ですが、たとえば、Yahoo!JapanのログインIDを入れるあの画面では、Enterを入力するとちゃんとIDのデータがサーバーに行きます。 あのようなこと(Enterで関数呼び出し)をNetscape系ブラウザでするには、どうしたらいいのでしょうか? 参考URL: http://www.openspc2.org/reibun/javascript/mouse/053/index.html

専門家に質問してみよう