簡體   English   中英

驗證插件-顯示消息

[英]Validation plugin - displaying messages

jQuery版本:1.9.0
驗證插件: http : //docs.jquery.com/Plugins/Validation

我想達到使字段輸入為紅色並在其中顯示錯誤消息的效果-如何做到這一點? 目前,我無法在任何地方顯示錯誤。 驗證有效,一切似乎正常,我的字段具有相同值的id和名稱...雖然什么都沒發生。 這是我的代碼:

$(document).ready(function() {
        $("#form").validate({
            rules: {
                username: {
                    remote: {
                        url: '<?php echo URL::base(TRUE, TRUE); ?>form/validate/rules',
                        type: "POST",
                        data: {
                            <?php // some data ?>
                        }
                    }
                },
            },
            messages {
                username {
                        remote: "Fdsfdsfsdfdfs"
                }
            }
        });
});

這是我的HTML:

<form action="..." method="post" id="form" accept-charset="utf-8">  <div id="input-text" class="input">
    <label for="username">fdsfsd</label>
    <input 

                type="text"
        name="username"
        id="username"

        value=""
        style="" />
</div>
<div id="input-text" class="input">
    <label for="aaa"></label>
    <input 

                type="text"
        name="aaa"
        id="aaa"

        value=""
        style="" />
</div>
<div id="input-submit" class="input">
    <input 
        type="submit"
        name="submit"
        id=""
                value="submit"
        style="" />
</div>

<script type="text/javascript">
// script from above
</script>
</form><div id="form-errors"></div>

我嘗試了這個:

jQuery.validator.setDefaults({
    errorPlacement: function(error, element) {
        error.appendTo(element.parent().find('div.form-errors'));
    }
});

但是也不起作用,螢火蟲中出現一些“未找到方法”錯誤...我找不到此問題的任何解決方案,您能幫我嗎? 我想我已經很好地描述了我的問題。

如果您在使用此插件時遇到問題,可以打開調試以獲取幫助:

$("#form").validate({
   debug: true,
   ...rest of the options
});

通常,這可能有助於診斷問題。

您說過要“字段輸入紅色並在其中顯示錯誤消息”。 如果該字段處於錯誤狀態,則驗證插件應為該字段提供CSS類“錯誤”(您可以設置“ errorClass”選項,以將其更改為另一個類)。 因此,您可以將input.error設置為紅色邊框或任意樣式。

但是,將錯誤消息放入form字段將更加棘手。 首先,如果您的表單字段是復選框,單選按鈕或選擇菜單,則無法完成。 我可以完成文本輸入字段。 但是,我建議不要這樣做。 例如,如果您有一個必填字段“ name”,則在提交表單后,如果name字段為空,則將其設置為error,但是給定后立即給出“此字段必填”值突然之間,它不再處於錯誤狀態。 CSS高亮顯示將消失,用戶可能不會注意到名稱字段設置錯誤。

在我看來,盡管您可能還希望調查invalidHandler,但您似乎在正確的道路上探索errorPlacement函數。 “ errorPlacement”處理單個字段的錯誤。 “ invalidHandler”通常會用於在表單上顯示一般錯誤狀態。

如果您沒有為errorPlacement設置任何內容,那么validate插件將在帶有錯誤狀態的form字段之后附加一個帶有錯誤類的標簽。 因此,我通常發現您只需要為“ label.error”設置一些CSS樣式即可。 例如:

<style>
    label.error {
        border: 1px solid red;
        color: red;
    }
</style>

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM