readOnlyの使い方は?

[上に] [前に] [次に]
じぇい2 1999/11/24(水) 16:41:29
フォーム上の<変更可能>ボタンを押すと、
テキストが変更可能になり、<変更取消>ボタンで
テキストを変更不能にしようとしているのですが、
HTMLタグでは、readOnlyをつけてしまうと、
常時 変更不能になってしまうので、よい方法があったら
教えてください。

今現在は、
<INPUT TYPE="TEXT" NAME="txt_shain_nm_knj" SIZE="20" MAXLENGTH="30" ID=INPUT>のようにIDをつけて
そこだけを
function BtnNone(a,b) {
        a.style.display = '';
                        b.readOnly = 'false';
}
のようにしているのですが、何も変わらないのです。。
よろしくお願いします。
環境は、IE5.0のみ対象です。

Nobu3 1999/11/24(水) 17:48:32
「BtnNone」はどのようにして呼ばれるのでしょう?
「b」が、上にある「input」を示すならちゃんと動作すると思いますが。
一度でいいので
document.all.INPUT.readOnly=false;
を試してみてください。

# もしかすると、「false」が文字列だから動かないのかも・・・

じぇい2 1999/11/24(水) 18:08:35
レスありがとうございます。
FALSEのクォーテーションをはずしてみたんですがだめでした。
document.allのほうはためしたいのですが、jsファイル内で書いているのでそちらのほうで直していいのでしょうか?

BtnNoneは
<INPUT TYPE="BUTTON" VALUE="変更可能" onClick="BtnNone(JIKOU,INPUT);">
のようによんでいます。
ちなみにaのほうは、ぼたんの表示・非表示にかかわっています。

Nobu3 1999/11/24(水) 18:19:45
jsファイルを変更しなくても、呼出し側を
BtnNone(document.all.JIKOU,document.all.INPUT);
で呼出せばいいかと思います。

ちなみに、IE4では、readonlyをHTMLで書いたものでも、変更できるようになりました。

じぇい2 1999/11/25(木) 09:46:14
うーん。やっぱりreadOnlyだけは、動作しないですね。

<INPUT TYPE="BUTTON" VALUE="変更可能" onClick="BtnNone(JIKOU,INPUT);">
で対応する関数が、
function BtnNone(a,b) {
a.style.display = '';
                        b.readOnly = 'false';
}
もうひとつは、
<INPUT TYPE="BUTTON" VALUE="変更取消" onClick="BtnExist(JIKOU,INPUT);">

function BtnExist(a,b) {
a.style.display = 'none';
                        b.readOnly = 'true';
}

<DIV ID="JIKOU" STYLE="display:none;">
  <INPUT TYPE="SUBMIT" VALUE="実行"></DIV>
でここがaにかかわる部分で、こちらのほうは動作しているのです。

IE5.0がなにか悪いんでしょうか????

Mugi [E-Mail] [HomePage] 1999/11/25(木) 10:09:00
ちゃんと動きますよ。
テストしたスクリプト:
<form>
<input type=text name=txt value=text readonly>
<br>
<input type=button onclick="txt.readOnly=false" value=変更可>
<br>
<input type=button onclick="txt.readOnly=true" value=変更不可>
</form>

Mugi [E-Mail] [HomePage] 1999/11/25(木) 10:20:38
じぇい2 さんのスクリプトを使ったものも用意しました。
'true','false'をtrue,falseにしただけでちゃんと動作するようになりましたよ。
http://hp.vector.co.jp/authors/VA013453/js/991125.htm

じぇい2 1999/11/25(木) 10:33:15
[[解決]]
できました!
IDをFormのほうにつけて、elementがテキストのものにたいして
readOnlyを付加させるようにしたのですが。

function BtnNone(a,f) {
              a.style.display = '';
              for(var i = 0; i < f.length; i++){
                   var e = f.elements[i];
                   if(e.type == "text"){
                        e.readOnly=false;
                 }
              }
}
    <FORM METHOD="POST" ID=INP>
  このFormに対して
<INPUT TYPE="BUTTON" VALUE="変更可能" onClick="BtnNone      (JIKOU,INP);">
この呼出です。

もっとスマートな方法があるとは思うのですが。。。
ともかく、皆様ありがとうございました。

[上に] [前に] [次に]