23

javascriptを使用して入力コントロールを変更した後、入力コントロールの境界線の色をリセットする方法を知っている人はいますか?不正または無効なデータが含まれているフィールドなどを強調表示することにより、検証に役立ちます。

例:境界線の変更:

document.getElementById('myinput').style.border = '1px solid red';

リセットする方法は?次の行は境界線を完全に削除します...

document.getElementById('myinput').style.border = '';

境界線の色を特定の色(たとえば、黒や灰色など)にリセットすると、一部のブラウザ/オペレーティングシステムでは、コントロールの「テーマ」のようなものが奇妙に見える場合があります。

ヒープに感謝します!

4

3 に答える 3

29

スタイル属性の設定では行わないでください。CSSクラスを使用してそれを行います。また、これを処理するためにJavascriptライブラリを使用することをお勧めします。コードをすっきりさせます。

CSS属性を削除すると、それらを何に戻すべきかが常にわからないため、問題が発生します。クラスの追加と削除は...うまくいきます。

要素ごとに複数のクラスを持つことができるので、この方法でそれを行うことに反対する議論は実際にはありません(imho)。

私はjQueryに慣れているので、私の例はそれです。

進入禁止:

$("#myinput").css("border", "1px solid red");

正しい方法:

<style type="text/css">
.redborder { border: 1px solid red; }
</style>

<script type="text/javascript">
$("#myinput").addClass("redborder");
$("#myinput").removeClass("redborder");
$("#myinput").toggleClass("redborder");
</script>
于 2009-02-23T01:59:32.117 に答える
6

これは私のために働く:

document.getElementById('myinput').style.removeProperty('border');
于 2013-11-13T22:33:00.953 に答える
0

国境をなくしたいだけですか?あなたがそうではないと言ったように、私はそうは思いません。

「リセット」する適切な方法は、デフォルトに設定することです。デフォルトが何であるかはわかりませんが、「1pxblack」などのようなものだと思います。

私は通常、この手法をさまざまなアプリケーションで使用します。デフォルトがわからない場合は、自分で「デフォルト」を設定して繰り返します。Webページでの私のお気に入りのテクニックの1つは、境界線ではなく、コントロールの背景色を設定することです。それは非常に目立ち、より落ち着いた色を選択しても影響力があります。その場合、背景をデフォルトの白に戻すのは非常に簡単です。

于 2009-02-23T02:01:36.900 に答える