jQuery,查找元素';表单张贴期间的ID


jQuery, finding an element's ID during form post

我试图从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,以及要显示的消息。

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

在我看来,更好的方法是为整个消息(包括消息类型)提供一个包装器,并通过您想要的特殊类名集颜色或wathever CSS规则。就像Plone状态消息一样(请参阅顶部的"警告"消息)

此处的工作示例:

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;
}