「タイムスタンプを変更しない」のチェック時のパスワード欄におけるENTERの動作†
- ページ: BugTrack2
- 投稿者: みもり
- 優先順位: 低
- 状態: 保留
- カテゴリー: その他
- 投稿日: 2006-02-05 (日) 22:38:20
- バージョン: 1.4.6
メッセージ†
記事の編集時に「タイムスタンプを変更しない」にチェックを入れて、
右のテキストボックスにパスワードを入力した時に、
キーボードのENTERを押してしまうとキャンセルされてしまいますが、
「ページの更新」がされる方がよさそうな気がします。
- うーん、IEとFireFoxで試しましたがプレビューになるようです。ブラウザは何をお使いなのでしょうか。 -- teanan
- パスワードを入力 => エンター(更新のつもり) => 更新されずにプレビュー、となり、パスワードを再度入力しないといけなくなる(空欄になる)のが面倒だと感じたことがあります。同じような事じゃないですかね、たぶん。パスワード入力後のエンターは更新を期待しますから (^^; -- 0
- なるほど、きっとそういう意味の「キャンセル」ですね (^^; -- teanan
- Enterキーを押したときに、どの状況でどのボタンが優先されるかは、ブラウザの挙動がからむ問題だったかと思いますので、それに合わせてボタンの位置(ボタンを出力する順番)を変更しないと実現しないかもしれません。調整後の「見た目」が違和感の無い形なのであれば、そう修正するのが良いでしょう。
- (キャンセルボタンの件は、別項目に分けました -- teanan)
- JavaScriptを使うとEnterキーを無効にできそうです(参考)。もちろんJavaScriptが無効になっていると使えませんが、誤動作防止の目的なので利用するのも手かと思います。 -- teanan
- 試してみたら、JavaScript無効だと更新できなくなってしまいました。ダメじゃん orz.. -- teanan
[fixed]「キャンセル」ボタンを別formに。†
- その他: cancelは現在、他のボタンと同じformの中にいますが、これを可能なら外に出す(別のformとして作る)といいかもしれません。そうすれば「ページの更新」のボタンが以前の様にedit_formの末尾に来る事になりますから、とりあえず期待通りの動作をするかもしれません。またこうすると(余計なデータが付かなくなるため)cancelを押した時の反応も軽くなります。機能的にはcancelは別のformでも問題ありません。デザイン的には、現在のformは一つの <div> タグで囲まれているため、そこを含めて見直さないと、今の場所にcancelのボタンを表示させる事はできないでしょう。(一行下に表示させる事なら可能ですが、あまり格好良くはありません) -- henoheno
- 'float:left'のdivでくくってやると見栄えそのままにできることは確認しました。よろしければコミットしますがいかが致しましょう? (^^; -- teanan
- うーん、なんか文法的に微妙なのでやめておきます (^^; -- teanan
- ご参考まで、差分をコメントで張っておきます。 -- teanan
--- html.php Sun Apr 09 18:27:50 2006
+++ .#html.php.1.50 Sun Apr 09 18:27:27 2006
@@ -236,8 +236,8 @@
}
$body = <<<EOD
+<div class="edit_form">
<form action="$script" method="post">
- <div class="edit_form">
$template
$addtag
<input type="hidden" name="cmd" value="edit" />
@@ -245,14 +245,24 @@
<input type="hidden" name="digest" value="$s_digest" />
<textarea name="msg" rows="$rows" cols="$cols">$s_postdata</textarea>
<br />
+<div style="float:left;">
<input type="submit" name="preview" value="$btn_preview" accesskey="p" />
<input type="submit" name="write" value="$_btn_update" accesskey="s" />
$add_top
$add_notimestamp
+</form>
+</div>
+<div style="float:left;">
+ <form action="$script" method="post">
+ <input type="hidden" name="cmd" value="edit" />
+ <input type="hidden" name="page" value="$s_page" />
<input type="submit" name="cancel" value="$_btn_cancel" accesskey="c" />
<textarea name="original" rows="1" cols="1" style="display:none">$s_original</textarea>
- </div>
-</form>
+ </form>
+</div>
+
+ <div style="clear:both;"></div>
+</div>
EOD;
if (isset($vars['help'])) {
- おお、コメントというのはこういうことか ∑(^^ コメント外しておきますね。機能とデザインを混ぜる(この場合、HTMLにCSSによるデザインを埋め込む)と再デザインが大変になりますから、別々にどうにかならないものかと思うのです -- henoheno
- 「文法的に微妙」と思っている部分を説明しておきますと、最初の </form> を別の div の中に入れてしまっている点です。formの中にformを作ってしまうという方法もありますが、これも良いものかどうか・・ (^^; -- teanan
- お疲れ様です。Enter時の挙動は問題ないですか? この件こうしましょうか。(1) 大きな問題が無ければとにかくcvsに突っ込む。挙動も見た目も大体意図通りで、動作も軽くなって幸せなはず (2) CVS版やalpha版のユーザーから「デザインこうせいやボケェ」と来るか、何か良い案(css.phpにまとめるとか)や、「それはそうせざるをえない」といったコメントがあれば別途詳細を詰めて対応する (3) 特に代替案が無いならそれでリリース。 -- henoheno
- form内formは妙な気がします。ちょっと確認しますね。 -- henoheno
- cvs:lib/html.php (1.51) teananさんの案でコミットしました(originalの位置とclearの有無が若干異なる)。分割するならこのような形になると思います。 -- henoheno
- このcancelの分割をしても、Enter時の挙動は関係ない様ですね。また、IEだとcancelが折り返されたままに見えるのは気のせいかな。打つ手がないならbackoutしましょう。 -- henoheno
- キャンセルがズレちゃってますね (^^; /formをdivの中に入れないとこのようになってしまうのです・・・ -- teanan
- /formを入れなくてもズレないようにできました。ちょっと修正します :) -- teanan
- こちらでも確認しました :) 分散しているCSSの意図がわかり辛いのでちょっとコメントを追加しました。 -- henoheno