IE5.0のオートコンプリートについて

[上に] [前に] [次に]
あきぞう [E-Mail] 2000/01/29(土) 13:51:48
onChangeを使って再フォーマットを行っています。

---------------------------------------
<form name=a>
<input type=text name="a" onChange="document.a.b.value=document.a.a.value.substr(1,1)+document.a.a.value.substr(0,1)">
<input type=hidden name="b">
</form>
---------------------------------------

通常だとbにはちゃんと値がセットされるのですが、IE5.0のオートコンプリート機能を
使用した場合、bには値がセットされません。

onBlurに変えてやってみたのですがうまくいきません。
submitするタイミングでチェックするしかないのでしょうか?
それともなにか別の方法はあるのでしょうか?

よろしくおねがいします。

Mugi [E-Mail] [HomePage] 2000/01/29(土) 13:57:31
onblurで試してみたらうまくいきましたよ。
WinNT+IE5.01

あきぞう [E-Mail] 2000/01/29(土) 14:29:17
早速の回答ありがとうございます。
onBlurですが、私も一瞬いけるじゃんと思ったのですが・・・
実際のところonBlurをよく理解していないせいか、
画面上ではちゃんと値がセットされているようなのですが実際に
POSTされる値が安定しません。

実際の画面は
From-toの日付指定+Submitボタンといったシンプルなものなのですが
前に入力された値でPOSTされてしまう場合があります。

最初オートコンプリートを使用して値をセットしたあと手入力で別の
日付を入力してsubmitをクリックするのでなくリターンキーを押下した
場合は必ず×です。

hiddenでかかれているところをtext型にして表示するようにして確認
したところちゃんと値はセットされています。。

あいまいでもうしわけない。。。

Mugi [E-Mail] [HomePage] 2000/01/29(土) 14:37:12
送信前にチェックを実行させるようにしてみては?
<script>
function format(){
document.a.b.value=document.a.name.value.substr(1,1)+document.a.name.value.substr(0,1)
}
</script>
<form name=a action="〜" onsubmit=format()>
<input type=text name="name" onblur="format()">
<input type=hidden name="b">
</form>

あきぞう [E-Mail] 2000/01/29(土) 14:58:26
やっぱりsubmit時のチェックになってしまうのでしょうねぇ・・
ところで少し話しがずれてしまいますが
onBlurとonSubmitのイベントが発生する順番は
submitボタンをクリックする場合とエンターキーでsubmitを
押したことにする場合とで順番とか違うのでしょうか?
結局今回の現象はonBlurイベントが発生する前にonSubmitが
動いてしまってるような気配があるからで・・・んーなぞだ。

Mugi [E-Mail] [HomePage] 2000/01/29(土) 16:57:20
onblurはonfocusの逆で「エレメントがフォーカスを失ったら」発生します。
Enterでsubmitが働いたときはonblurは発生しません。
それから、Enterでsubmitできるのはフォーム内に、<input type=text>がひとつの場合です。
他にもEnterでできる条件が合ったと思うのですが忘れてしまいました。

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