मैं जानना चाहता हूं कि जब मुझे कोई फॉर्म नहीं मिला और इस पैटर्न के साथ मैं jQuery अविभाज्य सत्यापन को कैसे सक्रिय कर सकता हूं:

    <script type="text/javascript">
        $('.btnAddAsync').click(function (e) {
            e.preventDefault(); // Avoid href postback
            var $letter = $(this);

            var charityAmount = $(".charity-gift");

            // *******
            // IF charityAmount IS VALID based on the unobtrusive rule then do the following 
            // *******
            var href = charityAmount.attr('data-href');
            href = href.replace(/(charityGiftAmount=)[0-9]+/ig, '$1' + $(".charity-gift").val());
            ......
        });
    </script>

एचटीएमएल:

    <div class="row">
         <div class="col-lg-12">
              <div class="input-group">
                   @Html.TextBoxFor(m => item.CharityGiftAmount, new { @class = "charity-gift form-control", data_href = Url.Action("Add", "Checkout", new { eventSlug = Model.Slug, eventId = Model.Id, skuId = item.Id, quantity = 1, charityGiftAmount = 0 }) })
                   <span class="input-group-btn">
                      <button class="btn btn-default btnAddAsync" type="button">@SharedResources.AddToCart</button>
                    </span>
              </div>
        </div>
    </div>
    @Html.ValidationMessageFor(m => item.CharityGiftAmount, "", new { @class = "text-danger" })

अगर मेरे पास एक फॉर्म होता, तो मैं form.valid() का उपयोग कर सकता था, लेकिन मुझे उस उपयोग के मामले के बारे में पता नहीं था जब मुझे केवल टेक्स्टबॉक्स मिला था।

धन्यवाद,

डेविड

-- संपादित करें

मैं इस महत्वपूर्ण विवरण का उल्लेख करना भूल गया: यहां टेक्स्टबॉक्सफील्ड पर मुझे जो सत्यापन मिला है:

<input class="charity-gift form-control" data-href="/Checkout/Add?eventSlug=trail-and-donation&amp;eventId=4&amp;skuId=5&amp;quantity=1&amp;charityGiftAmount=0" data-val="true" data-val-regex="Invalid amount" data-val-regex-pattern="^(\d+(?:[\.\,]\d{2})?|)$" id="item_CharityGiftAmount" name="item.CharityGiftAmount" type="text" value="">
0
David Létourneau 13 फरवरी 2017, 23:46
आपका सत्यापन क्या है जिसकी आपको आवश्यकता है? क्या आप सिर्फ यह जानना चाहते हैं कि क्या यह भरा हुआ है?
 – 
Cesar Bielich
14 फरवरी 2017, 00:01
ऐसा लगता है कि आपको charity-gift का मान प्राप्त करने की आवश्यकता है। फिर आपको var charityAmount = $(".charity-gift"); को var charityAmount = $(".charity-gift").val(); में बदलना होगा
 – 
Cesar Bielich
14 फरवरी 2017, 00:06
कृपया मेरा संपादन देखें
 – 
David Létourneau
14 फरवरी 2017, 00:13
@CesarBielich: मैं रेगेक्स सत्यापन को ट्रिगर करना चाहता हूं: डेटा-वैल-रेगेक्स-पैटर्न = "^ (\ डी + (?: [\। \,] \ डी {2})?|) $"
 – 
David Létourneau
14 फरवरी 2017, 00:51

1 उत्तर

सबसे बढ़िया उत्तर

अंत में, यहाँ समाधान। यदि आप सर्वर साइड पर रेगेक्स नियम स्थापित करते हैं, तो आप अभी भी इस तरह से jQuery के साथ रेगेक्स पैटर्न को पुनः प्राप्त कर सकते हैं और सत्यापन मैन्युअल रूप से कर सकते हैं।

<script type="text/javascript">
$('.btnAddAsync').click(function (e) {
    var charityAmount = $(".charity-gift");

    var validationRule = new RegExp(charityAmount.attr('data-val-regex-pattern'));

    if (validationRule.test(charityAmount.val())) {
       // Regex passed

       var href = charityAmount.attr('data-href');
       href = href.replace(/(charityGiftAmount=)[0-9]+/ig, '$1' + $(".charity-gift").val());
       ......
    }
    else {
       // Regex failed
       ......
    }
});
0
David Létourneau 15 फरवरी 2017, 15:52