jQuery,在表单发布期间查找元素的ID

时间:2011-06-01 01:06:13

标签: php jquery css validation

我正在尝试从div中找到一个id来确定输入表单时要使用的正确css类。

将生成的html示例:

<div id="output">ERROR</div>
<div id="msg">Password did not match.</div>

现在我使用了我制作的插件,但不同之处在于它使用了iframe,这不是这里的情况,所以我知道代码需要调整。

$.post("login.php", $('#login').serialize(), function(html){
                //see what message to display.
                var results = $(html).contents().find("#output").text();
                if (results == "success") {
                    FormResults("Success", $(html).contents().find("#message").text());
                }else if(results == "warning") {
                    FormResults("Notice", $(html).contents().find("#message").text());
                } else {
                    FormResults("Error", $(html).contents().find("#message").text());
                }
            }); //END $.ajax(

我希望我提供了足够的代码。如果没有,请告诉我。如果你有更好的方法,我对你的想法感兴趣。

概念是,php将生成两个div,一个用于消息类型,另一个是实际消息。第一个div将告诉jquery分配给我正在使用的验证插件的css以及要显示的消息。

1 个答案:

答案 0 :(得分:1)

我不太了解代码的逻辑,但我确实理解你想要实现的目标。

在我看来,更好的方法是为整个消息(包括消息的类型)和一个特殊的类名设置颜色或wathever CSS规则有一个包装器。就像Plone状态消息一样(see the "Warning" message on top

这里的工作示例:

http://jsfiddle.net/marcosfromero/8gbPg/

HTML:

<dl class="portalMessage error"><dt>Error</dt>
    <dd>This product has not had a release in over 1 year and may no longer be maintained. </dd>
</dl>

CSS:

主要css应适用于dl.portalMessage.portalMessage .dt.portalMessage .dd选择器以及errorsuccess或您需要的任何代码的特定颜色。

dl.portalMessage {
    font-size: 12px;
    background-color: #FFFFE3;
    border: 1px solid #996;
    margin-bottom: 1em;
}

dl.portalMessage dt {
    background-color: #996;
    font-weight: bold;
    float: left;
    margin: 0 0.5em 0 0;
    padding: 0.5em 0.75em;
    color: white;
    line-height: 1.25em;
}

dl.portalMessage dd {
    padding: 0.5em 0.5em;
    margin: 0;
    line-height: 1.25em;
}

dl.error {
    border-color: red;   
}

dl.error dt {
    background: red;   
}

dl.error dd {
    background-color: #FD7;
}

dl.success{
    border-color: navy;   
}

dl.success dt {
 background: navy;   
}

dl.success dd {
    background-color: #eee;
}