簡體   English   中英

使用JQuery.Validator AddMethod驗證股票代碼

[英]Using JQuery.Validator AddMethod to validate stock symbol

我是編碼的新手,我不確定在這里做錯什么,但是我只是用幾種股票代碼來驗證輸入形式。 當我提交不在數組中的符號時,我不會收到錯誤消息。 我的代碼如下。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.js"></script>

<script>
jQuery.validator.addMethod("vsymbol", function(value) 
{
    var symbols = ["GOOG", "AAPL", "MSFT", "DIS"];
        var in_array = $.inArray(value.toUpperCase(), symbols);
        if (in_array == -1) 
    {
        return false;
        }
    else
    {
        return true;
        }
}, "Not a valid stock symbol");

$("#myform").validate(
{
  rules: {
    symbol: {
      required: true,
      symbol: true
        }
         }
}   
);
</script>

<body>
<form id="myform" >
<label for="symbol">Ticker</label>    
<input name="symbol" type="text" class="vsymbol" />
</form>
</body>

請在$(document).ready(function(){})中包裝您的代碼,以便在dom加載后初始化此函數

您已經創建了一個名為vsymbol的新規則。 但是,在使用它時,您將其拼寫為symbol 您必須正確引用它才能使用它...

$("#myform").validate({
    rules: {
        symbol: { // <- name of the field
            required: true,
            vsymbol: true // <- name of the rule
        }
    }
});

如果您已經通過上面的rules對象分配了規則,那么在字段的class再次分配它完全是多余的。 只需使用其中一個即可。

<input name="symbol" type="text" class="vsymbol" />

另外,由於表單的HTML標記位於JavaScript之后,因此jQuery需要包裝在DOM ready事件處理程序中。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.js"></script>

<script>
    $(document).ready(function() {  // DOM ready event handler

        jQuery.validator.addMethod("vsymbol", function(value) {
            var symbols = ["GOOG", "AAPL", "MSFT", "DIS"];
            var in_array = $.inArray(value.toUpperCase(), symbols);
            return (in_array == -1) ? false : true;
        }, "Not a valid stock symbol");

        $("#myform").validate({
            rules: {
                symbol: { // <- name of the field
                    required: true,
                    vsymbol: true // <- name of the rule
                }
            }
        });

    });
</script>

您可能需要閱讀有關在JavaScript中使用Allman編碼樣式的信息

暫無
暫無

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

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