1

私はこの状況にあります:ユーザー情報(名前、電子メール、電話など)を編集できるページがあります。編集ボタンをクリックすると、データベースに既に設定されているユーザーデータをロードするダイアログ(モーダルウィンドウ)が呼び出されます。ユーザーが[更新]ボタンをクリックすると、コントローラーで検証を行い、ユーザーが有効な電子メールを挿入したことを確認します。電子メールが有効でない場合、エラーが発生し、この特定のダイアログで「error」という名前のクラスをhtmlラベルに追加します。私がやろうとしているのは、間違いがあった場合、検証の直後にダイアログを開いてほしいということです。$('#addEditUserDialog').dialog('open');私はこの特定のクラスエラーを間違いがあるときと場所でのみ設定しているので、この条件が発生したときにダイアログを呼び出す方法を見つけるためにあなたの助けを求めています$("#addEditUserDialog label.error")

私はやってみました:

if ($("#addEditUserDialog label.error")) {
        $('#addEditUserDialog').dialog('open');
    }

ただし、クラスエラーが設定されていない場合でも、ダイアログが呼び出されます。基本的な質問だとは思いますが、JavaScriptの経験があまりなく、ちょっと迷っています。

4

2 に答える 2

1

jQuery オブジェクトは常に true です (つまり、true と評価されます)。要素の存在をテストするには、次を使用する必要が$().lengthあります (要素がない場合は 0 で、その場合は false になります)。

if ( $("#addEditUserDialog label.error").length ) {
    $('#addEditUserDialog').dialog('open');
}
于 2012-07-24T15:58:06.013 に答える
0

試す -

var className = $("#addEditUserDialog").attr("class");
if (className == "error")
{
    $('#addEditUserDialog').dialog('open');
}
else
{
    alert("Class not found");
}

また

if ($("#addEditUserDialog").hasClass("error"))
{
    $('#addEditUserDialog').dialog('open');
}
else
{
    alert("Class not found");
}
于 2012-07-24T16:05:55.087 に答える