1

レスポンシブフォームを作成しようとしていたのですが、それをいくつかのWebサイトで使用していましたが、少し詳細に行き詰まりました。javascriptを使用して入力検証を有効にしたいので、ユーザーが入力テキストボックスに無効な入力を挿入すると、入力の右側にIMGタグがあり、下にDIVタグがあるエラーメッセージがボックスの横にポップアップ表示されます。入力。これは、これらの要素を入力の親要素であるLABELに追加(jQuery)することで実現します。

基本入力は次のとおりです。

<label for="errore"><span class="title">Errato</span><input type="text" name="errore" id="errore" size="30" maxlength="30" value="Cliccami e poi esci"/></label>

これが私が要素を追加する方法です。

$(this).parent().append("<img class='error' src='css/img/cross.png' alt='error' /><span class='error'>Input non valido.</span>");

したがって、ユーザーが正しい入力を入力してINPUTタグを終了すると、エラーメッセージは表示されなくなります。私はこのような要素を削除することによってこれを行います:

$(this).parent().find("*.error").remove();

そして、それはうまく機能します。しかし、私がこのシーケンスに従うと、間違った入力、終了要素、エラーメッセージ、正しい入力、終了要素、エラーメッセージが消え、間違った入力、終了要素、エラーメッセージが再び表示されますが、画像は新しい行にあります!そして、それはクロームだけです。どうして。IMG要素の隣の要素に依存しているようです。インライン要素の場合は1回目と2回目の両方で正常に機能し、ブロック要素の場合は1回目は正常に機能し、2回目は正しく機能しません。

ですから、私の問題は画像要素です。新しい行に配置したくないのですが、その隣の要素をブロック要素にしたいのです。

これはそれほど明確ではないかもしれないことを私は知っているので、私の例を含めます。

フォームの例(JSFiddle)

この例では、「Errato」というタイトルの入力を入力して終了し、エラーメッセージを追加してから、入力して終了してメッセージを削除するだけで十分です。したがって、これを3回実行すると、間違ったエラーメッセージが表示されるはずです。

画像が表示されるように見えます:ブロックか何か、'効果はそれであるためですが、ブラウザのコンソールでcssを確認すると、実際には表示:インラインです。

詳細が必要な場合は、お気軽にお問い合わせください。

4

3 に答える 3

2

あなたの問題を解決するためにこの方法を見てください。情報テキストを追加および削除するためのより良い方法を得るには、label要素内に入力フィールドを配置するだけだと思います。したがって、これも解決策になる可能性があります。

私が行った変更:CSSで:ラベルテキストをラップしているspan要素を削除しました

label.title{ font-weight:bold; display:block; margin-top:5px; }

Javascriptの場合:入力フィールドの直後に2つの情報要素を追加し、クラス「.error」を持つこの入力フィールドの次の2つの兄弟を削除します。また、エラーメッセージを保持するスパンをdiv要素に変更しました。

私もあなたのフィドルをフォークしました

于 2012-04-18T11:12:32.587 に答える
0

float:left画像にそれを解決することがあります。

于 2012-04-18T08:59:08.250 に答える
0

インラインアライメント解決済み:http://jsfiddle.net/CCEn2/6/

行われた変更:
CSSの場合:削除-「display:block;」「span.error」の場合

span.error{ color: #ac3b2a; font-style: italic; }


JSの場合:タグ内に画像を追加しました

$(this).parent().append("<span class='error'><img class='error' src='css/img/cross.png' alt='error' />Input non valido.</span>");

あなたの質問がインラインアライメントについてだったと思いますか?

于 2012-04-18T10:03:37.003 に答える